40 Superb CodeCanyon Items you Must Check Out

If you\'ve been hanging around Nettuts for long, you probably know that it\'s only one small piece of the huge Envato ecosystem. If you\'re interested in becoming

通过 40 Superb CodeCanyon Items you Must Check Out.

28 HTML5 Features, Tips, and Techniques you Must Know

Note – a couple times each week, this list will be updated with new tips. Eventually, it\'ll be an insanely helpful resource. This industry moves fast –

通过 28 HTML5 Features, Tips, and Techniques you Must Know.

15 Facts About Net Neutrality [Infographic]

15 Facts About Net Neutrality [Infographic].

kasahu ka

fqfqwfqwfqwdsf

first step of sen

no pollution no killing no warfollow de ph and distribute de ad of it at no cost follow de ph and distribute de ad of it at no cost

Entering The Wonderful World of Geo Location

I thought I could not be out-geeked. With a background in radio, and having dabbled in the demo scene on the Commodore 64 and hung out on BBSes and IRC for a long time and all the other things normal kids don’t quite get, I thought I was safe in this area.

Then I went to my first WhereCamp, an unconference dealing with geographical issues and how they relate to the world of Web development. Even my A-Levels in Astronomy did not help me there. I was out-geeked by the people who drive and tweak the things that we now consider normal about geo-location on the Web.

Pulling out your phone, find your location and getting directions to the nearest bar is easy, but a lot of work has gone into making that possible. The good news is that because of that effort, mere geo-mortals like you and me can now create geographically aware products using a few lines of code. So, let’s give the geo-community a big hand.

[By the way, did you know we have a brand new free Smashing Email Newsletter? Subscribe now and get fresh short tips and tricks on Tuesdays!]

Why Geo Matters

First of all, why is it important to consider physical location on this planet (at this moment) when we develop Web products? There are a few answers to this.

The first answer is mobility. The days of people sitting in front of desktop machines at home are over. Sales of mobile devices, laptops and netbooks have overtaken those of bulky stationary computers in the last few years. The power of processors now allows us to use smaller, more mobile hardware to perform the same tasks. So, if people use their hardware on the go, we should bring our systems to them. Which brings us to the second—very important—point: relevance.

Giving the user content that is relevant to the physical space they are in at the moment makes a lot of sense. We are creatures of habit. While we love the reach of the Internet, we also want to be able to find things in our local area easily: people to meet, cafes to frequent, interesting buildings and museums to learn about. The advertising industry—especially of the adult and dating variety—realized this years ago. I am sure you have come across one of the following before:

Adultpersonals in Entering The Wonderful World of Geo Location

I am sure these ads are more successful than the ones that show only user names. That the photos and names are the same for every location doesn’t seem to be a problem (but yes, I noticed it). So how does it all work?

Getting The User’s Location Via IP

Every computer on a network has a number that identifies it: its IP address. The Internet is nothing but a massive network, and your IP number is assigned to you by the service provider that you have used to connect to that network. Because the numbers that service providers assign change from one geographical location to the next (much like telephone numbers), you can make quite a good estimate of where your visitors are from.

To find out where a certain phone number is from, you use a phone book. To find out where an IP is from, you can use the Maxmind GeoIP database. Maxmind also provides a JavaScript solution that you can use on websites:

<script type="text/javascript" src="http://j.maxmind.com/app/geoip.js"></script>
<script>
  var info = document.getElementById('info');
  var lat = geoip_latitude();
  var lon = geoip_longitude();
  var city = geoip_city();
  var out = '<h3>Information from your IP</h3>'+
            '<ul>'+
            '<li>Latitude: ' + lat + '</li>'+
            '<li>Longitude: ' + lon + '</li>'+
            '<li>City: ' + city + '</li>'+
            '<li>Region: ' + geoip_region() + '</li>'+
            '<li>Region Name: ' + geoip_region_name() + '</li>'+
            '<li>Postal Code: ' + geoip_postal_code() + '</li>'+
            '<li>Country Code: ' + geoip_country_code() + '</li>'+
            '<li>Country Name: ' + geoip_country_name() + '</li>'+
            '</ul>'
  info.innerHTML = out;
</script>

Geolocation in Entering The Wonderful World of Geo Location

This gives you some information on the user (try it out for yourself). The challenge, though, is relevance. Your IP location is the location of the IP that your provider has assigned to you. Depending on your provider, this could be quite a ways off (in my case, I live in London, but my provider used to show me as living in Rochester). Another problem is if you work for a company that uses a VPN. At Yahoo, for example, I have to connect to the VPN to read my company email, and I have to choose a location to connect to:

Vpn in Entering The Wonderful World of Geo Location

So, for a solution like the one highlighted above, I would show up as being in a totally different part of the world (which might be useful for watching Internet TV in the UK while I am in the US). IP geo-location, then, is an approximation, not a dead-on science.

Getting The User’s Location Via The W3C Geo API

Guessing geographical location via IP is possible, but it can also be pretty creepy. Being able to take advantage of your location is useful, but security-conscious users and people who are generally suspicious of the Internet are not happy with the idea of their movements being monitored by a computer. This makes sense: if I can monitor your whereabouts day and night, I would know where and when to rob your house without you being there.

There are a lot of solutions to the challenge of having good-quality geo-location and maintaining privacy. Google Gears has a geo-location service; Plazes helps you store your location; and Yahoo’s Fire Eagle is probably the most polished way to securely maintain your location on the Web.

The problem with all of these services is that they require the user to either install a plug-in or visit a Web service to update their location. This is not fun; browsers should do the work for you.

We now have a W3C recommendation for a geo-location API that allows browsers to request the geographical location of the user. This makes it less creepy, and you get real data back.

Firefox 3.5 and above supports the W3C geo-location API. So does Safari on the iPhone if you run OS 3.0 or above. If you use the API, the browser will ask the user whether they want to share their location with your website.

Geowarning in Entering The Wonderful World of Geo Location

Once the user allows you to get their location, you get much more detailed latitude and longitude values. Using the API is very easy:

// if the browser supports the w3c geo api
if(navigator.geolocation){
  // get the current position
  navigator.geolocation.getCurrentPosition(

  // if this was successful, get the latitude and longitude
  function(position){
    var lat = position.coords.latitude;
    var lon = position.coords.longitude;
  },
  // if there was an error
  function(error){
    alert('ouch');
  });
}

Compare the IP and W3C solutions side by side. As you can see, there can be quite a difference in measuring the visitor’s location. The extent of the difference is shown in the following demo:

Difference in Entering The Wonderful World of Geo Location

Converting Latitude And Longitude Back Into A Name

Having more information is nice, but we have lost the name of the city and all the other nice data that came with the Maxmind database. Because the location has changed, we cannot just grab that old data; we have to find a way to convert latitude and longitude coordinates into a name. This process is called “reverse geo-coding,” and several services on the Web allow you to do it. Probably the most well-known is the geo-names Web service, but it has a few issues. For starters, the results are very US-centric.

One freely available but lesser-known reverse geo-coder that works worldwide comes from a surprising source: Flickr. The flickr.places.findByLatLon service returns a location from a latitude and longitude coordinates. You can try it out in the app explorer, but by far the easiest way to use it is by using the Yahoo Query Language (or YQL). YQL deserves its own article, but let’s just say that, instead of having to authenticate with the Flickr API and read the docs, reverse geo-coding becomes as easy as this:

select * from flickr.places where lat=37.416115 and lon=-122.0245671

Using the YQL Web service, you can get the result back as XML or JSON. So, to use the service in JavaScript, all you need is the following:

<script type="text/javascript" charset="utf-8">
 function getPlaceFromFlickr(lat,lon,callback){
   // the YQL statement
   var yql = 'select * from flickr.places where lat='+lat+' and lon='+lon;

   // assembling the YQL webservice API
   var url = 'http://query.yahooapis.com/v1/public/yql?q='+
              encodeURIComponent(yql)+'&format=json&diagnostics='+
              'false&callback='+callback;

   // create a new script node and add it to the document
   var s = document.createElement('script');
   s.setAttribute('src',url);
   document.getElementsByTagName('head')[0].appendChild(s);
 };

 // callback in case there is a place found
 function output(o){
   if(typeof(o.query.results.places.place) != 'undefined'){
     alert(o.query.results.places.place.name);
   }
 }

 // call the function with my current lat/lon
 getPlaceFromFlickr(37.416115,-122.02456,'output');
</script>

Combine that with the other services, and we get a more detailed result and can put a name to the coordinates:

Reversegeocode in Entering The Wonderful World of Geo Location

The Trouble With Latitude And Longitude

While latitude and longitude coordinates are a good way to describe a location on Earth, it is also ambiguous. The coordinates could represent either the centre of a city or a point of interest (such as a museum or a pub) in that spot.

WOEID to the Rescue

To work around the problem, Yahoo and Flickr (and soon will Twitter) support another way to pinpoint a location. The Where On Earth Identifier (or WOEID) is a more granular way to describe locations on Earth. Because Flickr supports it, we can easily get get photos from a particular area:

select * from flickr.photos.search where woe_id in (
  select place.woeid from flickr.places where lat=37.416115 and lon=-122.02456
)

Using this and a few lines of JavaScript, showing geo-located photos is pretty easy:

Geolocated-photos in Entering The Wonderful World of Geo Location

This has also been wrapped in a simple-to-use YQL solution. The following code will display 10 photos of Paris:

<script>
  function photos(o){
    var container = document.getElementById('photos');
    container.innerHTML = o.results;
  }
</script>
<script src="http://query.yahooapis.com/v1/public/yql?q=
select%20*%20from%20flickr.photolist%20where%20location%3D%22paris%2Cfr
%22%20and%20text%3D%22%22%20and%20amount%3D10&format=xml&
env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys&callback=photos">

You can also play with this in the YQL console.

Why Not Search For The Location’s Name?

The main question about implementations such as the one above is why couldn’t we just do a search on Flickr for the city, instead of doing all the complex geo-lookups? The reason is false positives. Take Paris, for example: if you want to show photos of Paris on a travel website, you don’t want Paris Hilton to show up in there. Same goes for Jack London. You may also want to show photos of London, England, not London, Ontario. Geographic data is full of these kinds of gotchas, and the term for finding the right one is “disambiguation.” See the Wikipedia article on “Victoria” to see just how many geographical contexts this term can have.

Turning Text Into Geo-Data

Finding a visitor’s geographic location is all well and good, but it doesn’t mean much if you can’t link it to information for that area. This is where it gets tricky. For Flickr (and soon Twitter), this is easy, because both services are able to attach geographical locations to the content you put in them. This is not so for most of the information on the Web, though, and this is when we resort to clever algorithms, machine-learning, pattern-matching and all the other think-tank stuff that computers and the scientists in front of them do.

Say you want to identify the geographical locations that a particular text or Web page talks about. Yahoo offers a service for that called Placemaker, and it is pretty easy to use. You need to get a developer key and send this as appid, send a text as documentContent, define the type of the text as documentType and define the type of data you want back as outputType. All of this needs to be sent as a POST to http://wherein.yahooapis.com/v1/document:

<form action="http://wherein.yahooapis.com/v1/document" method="post">
  <textarea id="text" name="documentContent">Hi there, I am Chris.
    I live in London, I am currently in Sunnyvale and will soon be in
    Atlanta and Las Vegas.</textarea>
  <div><input type="submit" name="sub" value="get locations"></div>
  <input type="hidden" name="appid" value="{YOUR_APP_ID}">
  <input type="hidden" name="documentType" value="text/plain">
  <input type="hidden" name="outputType" value="xml">
</form>

You can try this out yourself. Using PHP to call the API instead of a simple form, you can even format the output nicely. See it in action here:

Placemaker-results in Entering The Wonderful World of Geo  Location

While developers who have played around with Web services won’t find Placemaker hard to use, the service can be daunting for the average developer. That is why I built GeoMaker some time ago. GeoMaker allows you to enter a text or URL, select the locations you want to include in the final outcome, and get the locations either as a map to copy and paste or as micro-formats.

Geomaker in Entering The Wonderful World of Geo Location

However, because there is also a YQL solution for using PlaceMaker in JavaScript, we can do the same with a few lines of client-side code to enhance an HTML document. Check out the following example:

Textandmap in Entering The Wonderful World of Geo Location

To use this, you need three things: a text with geographical locations in them in an element with an ID, a Google Maps API key (which you can get here) and the following few lines of code:

<script src="http://github.com/codepo8/geotoys/raw/master/addmap.js"></script>
<script>
addmap.config.mapkey = 'COPY YOUR API KEY HERE';
addmap.analyse('content');
</script>

This makes it incredibly easy to give your visitors a sense of what part of the world a text is related to.

Adding Maps To Your Documents

Online maps have been around for a while now (and Google Maps was instrumental in the rise of AJAX), and many providers out there allow you to add maps to your documents. Google is probably the leader, but Yahoo also has maps, as does Microsoft and many more. There is even a fully open map service called Open Street Maps, which has been instrumental in the recent rescue efforts in Haiti.

If you want interactive maps, probably the easiest thing to use is Mapstraction, which is a JavaScript library that does away with the discrepancies between the various map providers and gives you a single interface for all of them. 24ways published a good introduction to it three years ago.

Probably the simplest way to show a map that supports markers and paths in your document without having to dive into JavaScript is the Google static maps API. It creates maps as images, and all you need to do is provide the map information in the src URI of the image. For example, in the script example above, this would be:

http://maps.google.com/maps/api/staticmap?
sensor=false
&size=200x200
&maptype=roadmap
&key=YOUR_MAP_KEY
&markers=color:blue|label:1|37.4447,-122.161
&markers=color:blue|label:2|37.3385,-121.886
&markers=color:blue|label:3|37.3716,-122.038
&markers=color:blue|label:4|37.7792,-122.42

You can define the size and type of the map. If all you provide is the location of markers, the API will automatically find the right zoom level and area to ensure that all markers are visible. Google’s website even offers a detailed tool to create static maps, including markers and paths.

Geo Is A Space To Watch

I hope this has given you some insight into all of the things you can do to bring the earth to your product and to put your product on the map. Geo-location and geo-aware services are already huge, and they’ll be even more important this year. There will be more services—some mobile providers are ready to roll out new hardware and software—and now you can be a part of it.

What the geo-world needs now is a designer’s eye, and this is where you can help the geo-geeks create apps that matter, that look great and that make a difference in our visitors’ lives. For inspiration, check out Mapumental, which allows you to pinpoint a place to live in London, or see how Google Earth and some 3-D Objects allow you to race a milk truck on real map data.

(al)

怪物自伝言葉

怪物に生まれ

化け物と見られ

だからこそ、化け物に使命の取り戻るさえということを命になされ。

化け物にもよかった、気持ちよく味わわないと泣かない。

化け物にもこのままでいい、感情は邪魔というのだから。

それまでに、化け物の生活方式に慣れて、離さない。

流れて歩いて、大人になても。

死亡までに、使命に尽くしたことになてもよかった。ほかにはどうでもいいだろう

tisa

siaks

.htaccess guide

.htaccess使用说明
.htaccess可以做大量范围的事情,包括:文件夹密码保护、用户自动重新指向、自定义错误页面、变更你的文件扩展名、屏蔽特定的用户IP地址、只允许特定的IP地址、停止目录表以及使用其他文件作为index文件,等等......

1. Introduction 介绍
文件名 .htaccess 属性 644 (RW-R–R–)
htaccess会影响它所在目录下的所有子目录
注意大多数内容都要求保持在一行之内,不要换行,否则会引起错误

2. Error Documents 错误文档
Official document: ErrorDocument Directive
ErrorDocument code document
例子
ErrorDocument 400 /errors/badrequest.html
ErrorDocument 404 http://yoursite/errors/notfound.html
ErrorDocument 401 “Authorization Required”
(注意之后内容如果出现的双引号需要转义为 \”)
常见HTTP状态码
Successful Client Requests
200 OK
201 Created
202 Accepted
203 Non-Authorative Information
204 No Content
205 Reset Content
206 Partial Content
Client Request Redirected
300 Multiple Choices
301 Moved Permanently
302 Moved Temporarily
303 See Other
304 Not Modified
305 Use Proxy
Client Request Errors
400 Bad Request
401 Authorization Required
402 Payment Required (not used yet)
403 Forbidden
404 Not Found
405 Method Not Allowed
406 Not Acceptable (encoding)
407 Proxy Authentication Required
408 Request Timed Out
409 Conflicting Request
410 Gone
411 Content Length Required
412 Precondition Failed
413 Request Entity Too Long
414 Request URI Too Long
415 Unsupported Media Type
Server Errors
500 Internal Server Error
501 Not Implemented
502 Bad Gateway
503 Service Unavailable
504 Gateway Timeout
505 HTTP Version Not Supported

3. Password Protection 密码保护
Official document: Authentication, Authorization and Access Control
假设密码文件为.htpasswd
AuthUserFile /usr/local/safedir/.htpasswd (这里必须使用全路径名)
AuthName EnterPassword
AuthType Basic
两种常见验证方式:
Require user windix
(仅允许用户windix登陆)
Require valid-user
(所有合法用户都可登陆)
Tip: 如何生成密码文件
使用htpasswd命令(apache自带)
第一次生成需要创建密码文件
htpasswd -c .htpasswd user1
之后增加新用户
htpasswd .htpasswd user2

4. Enabling SSI Via htaccess 通过.htaccess允许SSI(Server Side Including)功能
AddType text/html .shtml
AddHandler server-parsed .shtml
Options Indexes FollowSymLinks Includes
DirectoryIndex index.shtml index.html

5. Blocking users by IP 根据IP阻止用户访问
order allow,deny
deny from 123.45.6.7
deny from 12.34.5. (整个C类地址)
allow from all

6. Blocking users/sites by referrer 根据referrer阻止用户/站点访问
需要mod_rewrite模块
例1. 阻止单一referrer: badsite.com
RewriteEngine on
# Options +FollowSymlinks
RewriteCond %{HTTP_REFERER} badsite\.com [NC]
RewriteRule .* - [F]
例2. 阻止多个referrer: badsite1.com, badsite2.com
RewriteEngine on
# Options +FollowSymlinks
RewriteCond %{HTTP_REFERER} badsite1\.com [NC,OR]
RewriteCond %{HTTP_REFERER} badsite2\.com
RewriteRule .* - [F]
[NC] - 大小写不敏感(Case-insensite)
[F] - 403 Forbidden
注意以上代码注释掉了”Options +FollowSymlinks”这个语句。如果服务器未在 httpd.conf 的 段落设置 FollowSymLinks, 则需要加上这句,否则会得到”500 Internal Server error”错误。

7. Blocking bad bots and site rippers (aka offline browsers) 阻止坏爬虫和离线浏览器
需要mod_rewrite模块
坏爬虫? 比如一些抓垃圾email地址的爬虫和不遵守robots.txt的爬虫(如baidu?)
可以根据 HTTP_USER_AGENT 来判断它们
(但是还有更无耻的如”中搜 zhongsou.com”之流把自己的agent设置为 “Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)” 太流氓了,就无能为力了)
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^BlackWidow [OR]
RewriteCond %{HTTP_USER_AGENT} ^Bot\ mailto:craftbot@yahoo.com [OR]
RewriteCond %{HTTP_USER_AGENT} ^ChinaClaw [OR]
RewriteCond %{HTTP_USER_AGENT} ^Custo [OR]
RewriteCond %{HTTP_USER_AGENT} ^DISCo [OR]
RewriteCond %{HTTP_USER_AGENT} ^Download\ Demon [OR]
RewriteCond %{HTTP_USER_AGENT} ^eCatch [OR]
RewriteCond %{HTTP_USER_AGENT} ^EirGrabber [OR]
RewriteCond %{HTTP_USER_AGENT} ^EmailSiphon [OR]
RewriteCond %{HTTP_USER_AGENT} ^EmailWolf [OR]
RewriteCond %{HTTP_USER_AGENT} ^Express\ WebPictures [OR]
RewriteCond %{HTTP_USER_AGENT} ^ExtractorPro [OR]
RewriteCond %{HTTP_USER_AGENT} ^EyeNetIE [OR]
RewriteCond %{HTTP_USER_AGENT} ^FlashGet [OR]
RewriteCond %{HTTP_USER_AGENT} ^GetRight [OR]
RewriteCond %{HTTP_USER_AGENT} ^GetWeb! [OR]
RewriteCond %{HTTP_USER_AGENT} ^Go!Zilla [OR]
RewriteCond %{HTTP_USER_AGENT} ^Go-Ahead-Got-It [OR]
RewriteCond %{HTTP_USER_AGENT} ^GrabNet [OR]
RewriteCond %{HTTP_USER_AGENT} ^Grafula [OR]
RewriteCond %{HTTP_USER_AGENT} ^HMView [OR]
RewriteCond %{HTTP_USER_AGENT} HTTrack [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Image\ Stripper [OR]
RewriteCond %{HTTP_USER_AGENT} ^Image\ Sucker [OR]
RewriteCond %{HTTP_USER_AGENT} Indy\ Library [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^InterGET [OR]
RewriteCond %{HTTP_USER_AGENT} ^Internet\ Ninja [OR]
RewriteCond %{HTTP_USER_AGENT} ^JetCar [OR]
RewriteCond %{HTTP_USER_AGENT} ^JOC\ Web\ Spider [OR]
RewriteCond %{HTTP_USER_AGENT} ^larbin [OR]
RewriteCond %{HTTP_USER_AGENT} ^LeechFTP [OR]
RewriteCond %{HTTP_USER_AGENT} ^Mass\ Downloader [OR]
RewriteCond %{HTTP_USER_AGENT} ^MIDown\ tool [OR]
RewriteCond %{HTTP_USER_AGENT} ^Mister\ PiX [OR]
RewriteCond %{HTTP_USER_AGENT} ^Navroad [OR]
RewriteCond %{HTTP_USER_AGENT} ^NearSite [OR]
RewriteCond %{HTTP_USER_AGENT} ^NetAnts [OR]
RewriteCond %{HTTP_USER_AGENT} ^NetSpider [OR]
RewriteCond %{HTTP_USER_AGENT} ^Net\ Vampire [OR]
RewriteCond %{HTTP_USER_AGENT} ^NetZIP [OR]
RewriteCond %{HTTP_USER_AGENT} ^Octopus [OR]
RewriteCond %{HTTP_USER_AGENT} ^Offline\ Explorer [OR]
RewriteCond %{HTTP_USER_AGENT} ^Offline\ Navigator [OR]
RewriteCond %{HTTP_USER_AGENT} ^PageGrabber [OR]
RewriteCond %{HTTP_USER_AGENT} ^Papa\ Foto [OR]
RewriteCond %{HTTP_USER_AGENT} ^pavuk [OR]
RewriteCond %{HTTP_USER_AGENT} ^pcBrowser [OR]
RewriteCond %{HTTP_USER_AGENT} ^RealDownload [OR]
RewriteCond %{HTTP_USER_AGENT} ^ReGet [OR]
RewriteCond %{HTTP_USER_AGENT} ^SiteSnagger [OR]
RewriteCond %{HTTP_USER_AGENT} ^SmartDownload [OR]
RewriteCond %{HTTP_USER_AGENT} ^SuperBot [OR]
RewriteCond %{HTTP_USER_AGENT} ^SuperHTTP [OR]
RewriteCond %{HTTP_USER_AGENT} ^Surfbot [OR]
RewriteCond %{HTTP_USER_AGENT} ^tAkeOut [OR]
RewriteCond %{HTTP_USER_AGENT} ^Teleport\ Pro [OR]
RewriteCond %{HTTP_USER_AGENT} ^VoidEYE [OR]
RewriteCond %{HTTP_USER_AGENT} ^Web\ Image\ Collector [OR]
RewriteCond %{HTTP_USER_AGENT} ^Web\ Sucker [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebAuto [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebCopier [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebFetch [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebGo\ IS [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebLeacher [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebReaper [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebSauger [OR]
RewriteCond %{HTTP_USER_AGENT} ^Website\ eXtractor [OR]
RewriteCond %{HTTP_USER_AGENT} ^Website\ Quester [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebStripper [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebWhacker [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebZIP [OR]
RewriteCond %{HTTP_USER_AGENT} ^Wget [OR]
RewriteCond %{HTTP_USER_AGENT} ^Widow [OR]
RewriteCond %{HTTP_USER_AGENT} ^WWWOFFLE [OR]
RewriteCond %{HTTP_USER_AGENT} ^Xaldon\ WebSpider [OR]
RewriteCond %{HTTP_USER_AGENT} ^Zeus
RewriteRule ^.* - [F,L]
[F] - 403 Forbidden
[L] - ?

8. Change your default directory page 改变缺省目录页面
DirectoryIndex index.html index.php index.cgi index.pl

9. Redirects 转向
单个文件
Redirect /old_dir/old_file.html http://yoursite.com/new_dir/new_file.html
整个目录
Redirect /old_dir http://yoursite.com/new_dir
效果: 如同将目录移动位置一样
http://yoursite.com/old_dir -> http://yoursite.com/new_dir
http://yoursite.com/old_dir/dir1/test.html -> http://yoursite.com/new_dir/dir1/test.html
Tip: 使用用户目录时Redirect不能转向的解决方法
当你使用Apache默认的用户目录,如 http://mysite.com/~windix,当你想转向 http://mysite.com/~windix/jump时,你会发现下面这个Redirect不工作:
Redirect /jump http://www.google.com
正确的方法是改成
Redirect /~windix/jump http://www.google.com
(source: .htaccess Redirect in “Sites” not redirecting: why?
)

10. Prevent viewing of .htaccess file 防止.htaccess文件被查看
order allow,deny
deny from all

11. Adding MIME Types 添加 MIME 类型
AddType application/x-shockwave-flash swf
Tips: 设置类型为 application/octet-stream 将提示下载

12. Preventing hot linking of images and other file types 防盗链
需要mod_rewrite模块
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www/\.)?mydomain.com/.*$ [NC]
RewriteRule \.(gif|jpg|js|css)$ - [F]
解析:
若 HTTP_REFERER 非空 (来源为其他站点,非直接连接) 并且
若 HTTP_REFERER 非(www.)mydomain.com开头(忽略大小写[NC]) (来源非本站)
对于所有含有 .gif/.jpg/.js/.css 结尾的文件给出 403 Forbidden 错误[F]
也可指定响应,如下例显示替换图片
RewriteRule \.(gif|jpg)$
[R,L]
[R] - 转向(Redirect)
[L] - 连接(Link)

13. Preventing Directory Listing 防止目录列表时显示
IndexIgnore *
IndexIgnore *.jpg *.gif
Tips:
允许目录列表显示: Options +Indexes
禁止目录列表显示: Options -Indexes
显示提示信息: 页首 文件HEADER, 页尾 文件README

{{{.htaccess设置指南 标签: 指令 文件 目录 图片 文档 .htaccess 会降低APACHE的性能,除非你对目录权限要求很高或需要做UrlRewrite,否则不推荐你使用.

如果你的服务器目录结构是这样:

/usr/corsak/wwwroot/www/maindir

如果Apache指令中开启了AllowOverride支 持.htaccess文件,每访问一次会依次搜索:

/usr/corsak/wwwroot/www/maindir/.htaccess /usr/corsak/wwwroot/www/.htaccess /usr/corsak/wwwroot/.htaccess

下面是一份详细的文档,不知道哪年从哪找的。 因为在一个国外的空间的根文件夹下看到这个.htaccess,搞不懂是干什 么的,在落伍论坛找到一篇文章,先转过来放着,以后再慢慢研究,嘿嘿..

  • Apache指南: .htaccess文件

.htaccess文件提供了针对目录改变配置的方法。

  • .htaccess 文件
  • 工作原理和使用方法
  • 使用.htaccess文件的场合
  • 指令的生效
  • 认证举例
  • 服务器端包含举例
  • CGI举例
  • 疑 难解答

top .htaccess文件 相关模块 相关指令

top 工作原理和使用 方法

.htaccess文件(或者”分布式配置文件”提供了针对 目录改变配置的方法, 即,在一个特定的文档目录中放置一个包含一个或多个指令的文件, 以作用于此目录及其所有子目录。

说明:如果需要使用.htaccess以外的其他文件名,可以用AccessFileName指令来改变。 例如,需要使用.config,则可以在服务器配置文件中按以下方法配置:

AccessFileName .config

允许放在这些文件中的指令取 决于AllowOverride指 令, 此指令按类别决定了.htaccess文件中哪些指令才是有效的。 如果一个指令允许放在.htaccess文件中,则,在本手册的说明中,此指令会有一个覆盖段, 其中说明了为使此指令生效而必须在AllowOverride指 令中设置的值。

例如,本手册对AddDefaultCharset指 令的说明表明了, 此指令可以用于.htaccess文件(见 Context一行),而Override一行是”FileInfo“, 那么为使.htaccess中的此指令有效,则至少要设置”AllowOverride FileInfo“。 例子: Context: server config, virtual host, directory, .htaccess Override: FileInfo

如果不能确定一个特定的指令是否允许用于.htaccess 文件, 可以查阅手册中对指令的说明,看在Context(“上下文”)行中是否有”.htaccess.”。 top 使用.htaccess文件的场合

一般情况下,不应该使用.htaccess文件,除非你对主服务器配置文件没有存取权限。 有一种很常见的误解,认为用户认证只能通过.htaccess文件实现,但并不是这样, 把用户认证写在主服务器配置中是完全可行的,而且是一种很好的方法。

在内容提供者需要针对目录 改变服务器的配置而对服务器系统没有root权限时, 则应该使用.htaccess文件。如果服务器管理员不愿意频繁修改配置, 则可以允许用户通过.htaccess文件自己修改配置,尤其是ISP在一个机器上 宿主多个用户站点,而又希望用户可以自己改变配置的情况下。

虽然如此,一般都应该尽可能地避免使用.htaccess文件。 任何希望放在.htaccess文件中的配置,都可以放在主服务器的<Directory>段中,而且更高效。

避免使用.htaccess文件有两个主要原因。

首先是性能。 如果AllowOverride允许使用.htaccess文 件, 则,Apache需要在每个目录中查找.htaccess文件,因此,无论是否真正用到, 允许使用.htaccess文件都会导致性能的下降。 另外,每次请求一个页面时,都需要读取.htaccess文件。

还有,Apache必须在 所有更高级的目录中查找.htaccess文件, 使所有有效的指令都起作用(参见how directives are applied.),所以, 如果有对/www/htdocs/example中页面的请求,Apache必须查找以下文件:

/.htaccess /www/.htaccess /www/htdocs/.htaccess /www/htdocs/example/.htaccess

而且,对此目录以外的每个文件访问,还有4个附加的文件系统访问,即使这些文件都不存在。 (注意,这可能仅仅发生在 / 允许使用.htaccess文件的情况下,虽然这种情况并不多。)

其次是安全。 如此,会允许用户修改服务器的配置,可能会导致未加限制的修改,请认真考虑是否给予用户这样的特权。 但是,如果给予用户较少的特权而不能满足其需要,则会带来额外的技术支持请求, 所以,必须明确地告诉用户已经给予他们的权限,说明AllowOverride设 置的值, 并引导他们参阅相应的说明,以免日后许多麻烦。

注意,在/www /htdocs/example目录下.htaccess文件中放置指令,与, 在主服务器配置文件中<Directory /www/htdocs/example>段中放置相同指令, 是等效的。:

/www/htdocs/example中的.htaccess: /www/htdocs/example中.htaccess文件的内容

AddType text/example .exm httpd.conf文件中的段

<Directory /www/htdocs/example> AddType text/example .exm </Directory>

但是,把这个配置放置在服务器配置文件中则更加高效,因为只需要在Apache启动时读取一次, 而不是在有文件请求时每次都读取。

AllowOverride设 置为”none”可以完全禁止使用.htaccess文件。

AllowOverride None top 指令的生效

.htaccess文件中的配置指令作用于.htaccess文件所在的目录及其所有子目录, 但是,很重要需要记住的是,其更高级的目录也可能会有.htaccess文件, 而指令是按查找顺序依次生效,所以, 一个特定目录下的.htaccess文件中的指令可能会覆盖其更高级目录中的 .htaccess文件的指令,即, 子目录中的指令会覆盖更高级目录或者主服务器配置文件中的指令。

例如:

目录/www/htdocs/example1中的.htaccess文件有如下内容:

Options +ExecCGI

(注意: 必须设置”AllowOverride Options”以允许在.htaccess文件中使用 “Options”指令。)

在目录/www/htdocs/example1/example2中的.htaccess文件有如下内容:

Options Includes

由于第二 个.htaccess文件的存在,/www/htdocs/example1/example2中 的CGI执行是不允许的,而只允许Options Includes,它完全覆盖了之前的设置。 top 认证举例

如果你为了知道如何认证,直接从这里开始看,有很重要的一点需要注意,有一种常见的误解, 认为实现密码认证必须要使用.htaccess文件,其实不是这样。 把认证指令放在主服务器配置文件的<Directory>段中,是一个更好的方法, 而.htaccess文件应该仅仅用于无权访问主服务器配置文件的时候。 参见上述的使用.htaccess文件的场合。

有此声明在先,如果你仍然需要使用.htaccess文件,请看以下说明。

必须设置”AllowOverride AuthConfig” 以允许这些指令生效

.htaccess文件的内 容:

AuthType Basic AuthName “Password Required” AuthUserFile /www/passwords/password.file AuthGroupFile /www/passwords/group.file Require Group admins

注意,必须设置AllowOverride AuthConfig以 允许这些指令生效

更详细的有关身份识别和认证 的说明,请参见authentication tutorial。 top 服务器端包含举例

.htaccess文件的另一个常见用途是允许一个特定目录的服务器端包含(Server Side Includes), 可以在需要的目录中放置.htaccess文件,并如下配置:

Options +Includes AddType text/html shtml AddHandler server-parsed shtml

注意,必须同时设置AllowOverride Options和 AllowOverride FileInfo使 这些指令生效。

更详细的有关服务器端包含的说明,请参见SSI tutorial。 top CGI举例

最后,可以通过.htaccess文件允许在特定目录中执行CGI程序,需按如下配置:

Options +ExecCGI AddHandler cgi-script cgi pl

另外,如下,可以使给定目录 下所有文件被视为CGI程序:

Options +ExecCGI SetHandler cgi-script

注意,必须设置AllowOverride Options使这些指令生效。

更详细的有关CGI编程和配 置的说明,请参见CGI tutorial。 top 疑难解答

如果在.htaccess文件中写入了配置指令但不起作用,可能有多种原因。

最常见的原因是,AllowOverride指令没有被正确设置, 必须确保没有对此文件区域设置AllowOverride None。有一个很好的测试方法,即, 在.htaccess文件随便增加点没用的内容,如果服务器没有返回了一个错误消息, 那么几乎可以断定设置了AllowOverride None。

在访问文档时,如果收到服务器的出错消息,应该检查 Apache的出错日志, 可以知道.htaccess文件中哪些指令是不允许使用的,也可能会发现需要纠正的语法错误。

.htaccess文件使 用手册

- .htaccess文件(或者”分布式配置文件”提供了针对目录改变配置的方法, 即,在一个特定的文档目录中放置一个包含一个或多个指令的文件,以作用于此目录及其所有子目录。作为用户,所能使用的命令受到限制。管理员可以通过 Apache的AllowOverride指 令来设置。

- 子目录中的指令会覆盖更高级目录或者主服务器配置文件中的指令。

- .htaccess必须以ASCII模式上传,最好将其权限设置为644。

错误文档的定位

常用的客户端请求错误返回代码: 401 Authorization Required 403 Forbidden 404 Not Found 405 Method Not Allowed 408 Request Timed Out 411 Content Length Required 412 Precondition Failed 413 Request Entity Too Long 414 Request URI Too Long 415 Unsupported Media Type 常见的服务器错误返回代码: 500 Internal Server Error

用户可以利用.htaccess指定自己事先制作好的错误提醒页面。一般情况下,人们可以专门设立一个目录,例如 errors放置这些页面。然后再.htaccess中,加入如下的指令:

ErrorDocument 404 /errors/notfound.html ErrorDocument 500 /errors/internalerror.html

一条指令一行。上述第一条 指令的意思是对于404,也就是没有找到所需要的文档的时候得显示页面为/errors目录下的notfound.html页面。不难看出语法格式为:

ErrorDocument 错误代码 /目录名/文件名.扩展名

如果所需要提示的信息很少的 话,不必专门制作页面,直接在指令中使用HTML号了,例如下面这个例子:

ErrorDocument 401 “<body bgcolor=#ffffff><h1>你没有权限访问该页面,请放弃!</h1></body>”

文档访问的密码保护

要利用.htaccess 对某个目录下的文档设定访问用户和对应的密码,首先要做的是生成一个.htpasswd的文本文档,例如:

zheng:y4E7Ep8e7EYV

这里密码经过加密,用户可 以自己找些工具将密码加密成.htaccess支持的编码。该文档最好不要放在www目录下,建议放在www根目录文档之外,这样更为安全些。

有了授权用户文档,可以在.htaccess中加入如下指令了:

AuthUserFile .htpasswd的服务器目录 AuthGroupFile /dev/null (需要授权访问的目录) AuthName EnterPassword AuthType Basic (授权类型)

require user wsabstract (允许访问的用户,如果希望表中所有用户都允许,可以使用 require valid-user)

注,括号部分为学习时候自己 添加的注释

拒绝来自某个IP的访问

如果我不想某个政府部门访问到我的站点的内容,那可以通过.htaccess中加入该部门的IP而将它们拒绝在外。

例如:

order allow,deny deny from 210.10.56.32 deny from 219.5.45. allow from all

第二行拒绝某个IP,第三行拒绝某个IP段,也就是219.5.45.0~219.2.45.255

想要拒绝所有人?用deny from all好了。不止用IP,也可以用域名来设定。

保护.htaccess文档

在使用.htaccess 来设置目录的密码保护时,它包含了密码文件的路径。从安全考虑,有必要把.htaccess也保护起来,不让别人看到其中的内容。虽然可以用其他方式做到 这点,比如文档的权限。不过,.htaccess本身也能做到,只需加入如下的指令:

<Files .htaccess> order allow,deny deny from all </Files>

URL转向

我们可能对网站进行重新规划,将文档进行了迁移,或者更改了目录。这时候,来自搜索引擎或者其他网站链接过来的访问就可 能出错。这种情况下,可以通过如下指令来完成旧的URL自动转向到新的地址:

Redirect /旧目录/旧文档名 新文档的地址

或者整个目录的转向:

Redirect 旧目录 新目录

改变缺省的首页文件

一般情况下缺省的首页文件名有default、index等。不过,有些时候目录中没有缺省文件,而是某个特定的文件 名,比如在pmwiki中是pmwiki.php。这种情况下,要用户记住文件名来访问很麻烦。在.htaccess中可以轻易的设置新的缺省文件名:

DirectoryIndex 新的缺省文件名

也可以列出多个,顺序表明它们之间的优先级别,例如:

DirectoryIndex filename.html index.cgi index.pl default.htm

防止盗链

如果不喜欢别人在他们的网页 上连接自己的图片、文档的话,也可以通过htaccess的指令来做到。

所需要的指令如下:

RewriteEngine on RewriteCond % !^$ RewriteCond % !^[url]http://(www/.)?mydomain.com/.[/url]*$ [NC] RewriteRule \.(gif|jpg)$ – [F]

如果觉得让别人的页面开个天窗不好看,那可以用一张图片来代 替:

RewriteEngine on RewriteCond % !^$ RewriteCond % !^[url]http://(www/.)?mydomain.com/.[/url]*$ [NC] RewriteRule \.(gif|jpg)$ [url]http://www.mydomain.com /[/url]替代图片文件名 [R,L]

- .htaccess文件(或者”分布式配置文件”提供了针对目录改变配置的方法, 即,在一个特定的文档目录中放置一个包含一个或多个指令的文件, 以作用于此目录及其所有子目录。作为用户,所能使用的命令受到限制。管理员可以通过Apache的AllowOverride指令来设置。

- 子目录中的指令会覆盖更高级目录或者主服务器配置文件中的指令。

- .htaccess必须以ASCII模式上传,最好将其权限设置为644。

错误文档的定位

常用的客户端请求错误返回 代码: 401 Authorization Required 403 Forbidden 404 Not Found 405 Method Not Allowed 408 Request Timed Out 411 Content Length Required 412 Precondition Failed 413 Request Entity Too Long 414 Request URI Too Long 415 Unsupported Media Type 常见的服务器错误返回代码: 500 Internal Server Error

用户可以利用.htaccess指定自己事先制作好的错误提醒页面。一般情况下,人们可以专门设立一个目录,例如 errors放置这些页面。然后再.htaccess中,加入如下的指令:

ErrorDocument 404 /errors/notfound.html ErrorDocument 500 /errors/internalerror.html

一条指令一行。上述第一条 指令的意思是对于404,也就是没有找到所需要的文档的时候得显示页面为/errors目录下的notfound.html页面。不难看出语法格式为:

ErrorDocument 错误代码 /目录名/文件名.扩展名

如果所需要提示的信息很少的 话,不必专门制作页面,直接在指令中使用HTML号了,例如下面这个例子:

ErrorDocument 401 “<body bgcolor=#ffffff><h1>你没有权限访问该页面,请放弃!</h1></body>”

文档访问的密码保护

要利用.htaccess 对某个目录下的文档设定访问用户和对应的密码,首先要做的是生成一个.htpasswd的文本文档,例如:

zheng:y4E7Ep8e7EYV

这里密码经过加密,用户可 以自己找些工具将密码加密成.htaccess支持的编码。该文档最好不要放在www目录下,建议放在www根目录文档之外,这样更为安全些。

有了授权用户文档,可以在.htaccess中加入如下指令了:

AuthUserFile .htpasswd的服务器目录 AuthGroupFile /dev/null (需要授权访问的目录) AuthName EnterPassword AuthType Basic (授权类型)

require user wsabstract (允许访问的用户,如果希望表中所有用户都允许,可以使用 require valid-user)

注,括号部分为学习时候自己 添加的注释

拒绝来自某个IP的访问

如果我不想某个政府部门访问到我的站点的内容,那可以通过.htaccess中加入该部门的IP而将它们拒绝在外。

例如:

order allow,deny deny from 210.10.56.32 deny from 219.5.45. allow from all

第二行拒绝某个IP,第三行拒绝某个IP段,也就是219.5.45.0~219.2.45.255

想要拒绝所有人?用deny from all好了。不止用IP,也可以用域名来设定。

保护.htaccess文档

在使用.htaccess 来设置目录的密码保护时,它包含了密码文件的路径。从安全考虑,有必要把.htaccess也保护起来,不让别人看到其中的内容。虽然可以用其他方式做到 这点,比如文档的权限。不过,.htaccess本身也能做到,只需加入如下的指令:

<Files .htaccess> order allow,deny deny from all </Files>

URL转向

我们可能对网站进行重新规划,将文档进行了迁移,或者更改了目录。这时候,来自搜索引擎或者其他网站链接过来的访问就可 能出错。这种情况下,可以通过如下指令来完成旧的URL自动转向到新的地址:

Redirect /旧目录/旧文档名 新文档的地址

或者整个目录的转向:

Redirect 旧目录 新目录

改变缺省的首页文件

一般情况下缺省的首页文件名有default、index等。不过,有些时候目录中没有缺省文件,而是某个特定的文件 名,比如在pmwiki中是pmwiki.php。这种情况下,要用户记住文件名来访问很麻烦。在.htaccess中可以轻易的设置新的缺省文件名:

DirectoryIndex 新的缺省文件名

也可以列出多个,顺序表明它们之间的优先级别,例如:

DirectoryIndex filename.html index.cgi index.pl default.htm

防止盗链

如果不喜欢别人在他们的网页 上连接自己的图片、文档的话,也可以通过htaccess的指令来做到。

所需要的指令如下:

RewriteEngine on RewriteCond % !^$ RewriteCond % !^[url]http://(www/.)?mydomain.com/.[/url]*$ [NC] RewriteRule \.(gif|jpg)$ – [F]

如果觉得让别人的页面开个天窗不好看,那可以用一张图片来代 替:

RewriteEngine on RewriteCond % !^$ RewriteCond % !^[url]http://(www/.)?mydomain.com/.[/url]*$ [NC] RewriteRule \.(gif|jpg)$ [url]http://www.mydomain.com /[/url]替代图片文件名 [R,L]

一. 自定义404,401,等错误 1. 首先建立一个名为: .htaccess 写入以下内容 ErrorDocument 401 /err401.html ErrorDocument 402 /err402.html ErrorDocument 403 /err403.html ErrorDocument 404 /err404.html

其 中,401,402,403,404代表错误类型, 后面的 err401.html代表其相对应的页面,

2. 分别建立名字为: err401.html,err402.html……… 的文件,当出现对应的错误的时候, 就会指向对面的页面

3. 传到根目录下, 也就是 public_html 目录下 一切就OK了

二. 去掉广告 建个文件名 .htaccess 的文件, 文件内容如下: LayoutIgnoreURI *.php LayoutIgnoreURI *.cgi LayoutIgnoreURI *.htm LayoutIgnoreURI *.html

将 .htaccess 上传至空间的 Public_html 目录下,即可去掉广告!

注意 *.* 这里..想去那种扩展名的文件,就写上那种文件的扩展名! 这个是最简单的方法,只要在根目录加这个文件,那么整个网站都不会有广告! }}}

15 Javascript Web UI Libraries, Frameworks and Toolkits

Almost all of the rich web applications that we currently see on the web today rely on a subtle set of UI controls, libraries or frameworks (or toolkits) that not only greatly simplify application development, they also provide a consistent, reliable, and highly interactive User Interface. What more could you ask for?

Currently, there are a wide varied range of Web UI frameworks covering varied languages – for today we will focus on Javascript Web UIs.
Not all libraries are suited for every project, but most developers will still rely on a single UI framework, a faithful friend they will always turn to in times of need…

…so, if you are looking for a fresh UI outlook, below you will find the best 15 Javascript Web UIs, all offering, to different degrees, solutions.

LivePipe: UI Components for Prototype

LivePipe UI is a suite of widgets and controls for applications that has been built using the Prototype Javascript Framework. Each control is well tested, highly extensible, well documented and all of them will degrade gracefully for non JavaScript compatible browsers.
Available Controls: Tabs, Windows, TextArea, SelectMultiple, Rating, ProgressBar, ScrollBar and ContextMenu.

LivePipe Homepage & Downloads »
LivePipe Controls, Demos & Examples »

Controls Browser

UKI – Simple UI Kit for Complex Web Apps

UKI is a simple JavaScript UI toolkit has been written in plain JavaScript, built to speed-up desktop-like web applications and comes with a rich view-component library ranging from a Slider to List and SplitPane (view the control browser below). It leverages well-known DOM and JS idioms such as CSS selectors, events and attributes. So, if you’ve ever used jQuery, learning UKI won’t take very long.
The keyword to UKI is simplicity: No frameworks to install, no dependencies to manage and no CSS to include.

UKI Homepage & Downloads »
UKI Controls, Demos & Examples »

Controls/Example Browser

MochaUI – A Web Application User Interface Library

MochaUI is a popular extension to the MooTools Javascript Framework and ExplorerCanvas, to develop quick Web Applications, Web Desktops, Web Sites, Widgets, Standalone Windows, Modal Dialogs and much more.

MochaUI Homepage & Downloads »
MochaUI Controls, Demos & Examples »

Control Browser

Sigma Ajax UI Builder

Written in Javascript and PHP, SigmaVisual is web based visual WYSIWYG AJAX UI builder that has more than 40 common components, including tabs, dialog, tree grid, time Line and so on.

Sigma Ajax UI Builder Homepage & Downloads »
Sigma Ajax UI Builder Controls, Demos & Examples »

Control Browser

JxLib based MooTools

JxLib is a JavaScript UI framework built on MooTools. It provides the basic components most applications need such as buttons, tabs, menus, trees, and dialogs, as well as a few more capabilities. JxLib also incorporates a mechanism for selecting a look and feel, or skin, based on a set of images and CSS.

JxLib Homepage & Downloads »
JxLib Controls, Demos & Examples »

Control Browser

Dijit – The Dojo Toolkit

Dijit is a widget system layered on top of Dojo. If you are new to the whole Dojo experience, Dijit is a good place to start. You can build amazing Web 2.0 GUI’s with very little, or no, JavaScript experience (although it helps).
Everything in Dijit is designed to be globally accessible – to accommodate users with different languages and cultures as well as those with different abilities. Language translations, bi-directional text, and cultural representation of things like numbers and dates are all encapsulated within the widgets.

Dijit Homepage & Downloads »
Dijit Controls, Demos & Examples »

Control Browser

jQuery TOOLS – The missing UI library for the Web

jQuery Tools is a very light weight (2.5kb) collection of the most popular user-interface components that offers functionality over load time. It provides libraries for the following jQuery elements: Tabs, Tooltip, Scrollable, Overlay, Forms and Flashembed.

jQuery TOOLS Homepage & Downloads »
jQuery TOOLS Controls, Demos & Examples »

Control Browser

jQuery UI

jQuery UI is a widget and interaction library built on top of the jQuery core that allows you to animate different elements giving you impressive front-end interactions, all with relative ease.
The UI package is basically a collection of user interface-related functions that and can be broken into 3 main modules: the widgets, which contain prebuilt and customizable user interfaces; the effects, which are very simple and straightforward animations you can do to a page element (shake it, explode it, and so on); and expanded mouse interaction with page elements (dragging and dropping).

jQuery UI Homepage & Downloads »
jQuery UI Controls, Demos & Examples »

Demos, Examples and Controls

Prototype UI

Prototype UI is an extensive and easy to use Javascript library of UI components based on Prototype and Script.aculo.us. Prototype UI provides such modules as Carousel, Modal window, Shadow and Context menu which can be used as one package or independently.

Prototype UI Homepage & Downloads »
Prototype UI Controls, Demos & Examples »

Demos, Examples and Controls

Jitsu – Rich Web Application Framework

Jitsu features an XML markup language, page compiler, animation engine, Ajax, and runtime inspector, among other things. Its implementation of Ajax makes it designer friendly, which is crucial for building consumer web applications. It’s got client-side data binding to make for rapid iterations, meaning changes are easy to achieve without having to rebuild everything from the ground up.
Other features include a compiler which converts markup to javascript, javascript runtime, cross platform library and backbutton support. Jitsu works best with Firefox and IE. It doesn’t require any particular back-end server solution.

Jitsu Homepage & Downloads »
Jitsu Controls, Demos & Examples »

Demos, Examples and Controls

Qutensil JavaScript Toolset

Qutensil is still under development but is showing some very promising stuff in its roadmap. It ihas been built on Prototype and Scriptaculous libraries and features a growl-like user messaging system, color picker (based on raphaël), slider, tooltip system, draggable window and alert / confirm / prompt windowing systems.

Qutensil Homepage & Downloads »
Qutensil Controls, Demos & Examples »

Demos, Examples and Controls

Script.aculo.us

script.aculo.us is a popular UI kit that extends the Prototype Framework by adding visual effects, user interface controls, and utilities via the DOM.

Script.aculo.us Homepage & Downloads »

Demos, Examples and Controls

Alloy UI

AlloyUI is a feature rich UI frameworks, built on YUI 3 and to some degree on YUI 2, that comprises a wide array of components – more than 60 in all – that range from utilities to sugar layers to full-blown UI widgets. Its contols include: Image Gallery, Dialog, Treeview, Panel, AutoComplete, Button, Calendar, Toolbar… and much more.

Alloy UI Homepage & Downloads »
Alloy UI Controls, Demos & Examples »

Demos, Examples and Controls

iUI: iPhone User Interface Framework

iUI: iPhone User Interface FrameworkIUI, consists of a JavaScript library, CSS, and images. It is a light weight and minimal UI framework for developing uniform iPhone apps. With such controls as navigational menus (iPhone-style), phone orientation changes and iPhone style on/off toggle it can give a more "iPhone-like" experience to your web apps.

iUI Homepage & Downloads »

XUI – Javascript Micro-Framework

XUI - Javascript Micro-FrameworkXUI is "a lightweight, dead simple, microtiny, super modular JavaScript framework for building mobile web applications".
The reason why XUI is so light weight is due to all of the cross browser compatibility code being stripped out and deemed non essential for mobile app development. Thus XUI.
It aims to be a framework for first class mobile device browsers such as WebKit, Fennec and Opera, with future support under consideration for IE Mobile and BlackBerry.

XUI Homepage & Downloads »

Yahoo! YUI Library

YUI Library
If all of the above UI frameworks, kits and libraries don’t suit your needs, maybe you should try the Daddy of UI frameworks, the very reliable, feature rich, and very popular Yahoo! YUI Library. YUI, currently in its third edition, is a constantly updated (by its large team of developers) UI library thats choc-full of features, tools, and packs a multitude of components, utilities, modules and controls. As far as finding the most complete UI library, you would be hard pushed to find any better than YUI.

YUI Library Homepage & Dowanloads »
Getting Started with YUI2 »
Getting Started with YUI3 »
YUI3 Controls, Demos & Examples »

Original Link:http://speckyboy.com/2010/05/17/15-javascript-web-ui-libraries-frameworks-and-libraries/

BLOG.CD