Archive for: 三月, 2010

php中常用的正则表达式的总结和实例

三 31 2010 Published by zdy under 编程技巧

用了这么就的php,但是对正则的用法一直掌握得模模糊糊,下面是一些技巧收集,对于那些不明白/ie和/is之类的可以看下面的具体例子
作用:分割,匹配,查找,替换

1,php中两个常用的正则函数

preg_match(mode,string subject,array matches);
mode —模块,正则的语法
subject —正则内容
matches —正则的结果
ereg(mode,string subject,array regs);
以上两个函数返回的为true或flase。

2,正则表达式包含的元素

一,原子(普通字符:a-z,A-Z,0-9,原子表,转义符)
二,元字符(有特殊功能的字符)
三,模式修政符(系统内置部分字符i,m,S,U…)

3,正则表达式中的“原子”

一,a-z A-Z_0-9 //最常见的字符
二,(bfw)(sda) //用圆括号包含起来的单元符号,一个括号表示一个整体
三,[sdwe][^mjnb] //用方括号包含起来的原子表,原子表中^代表排除或相反内容
四,转义字符
\d 包含所有的数字[0-9]
\D 除所有数字外[^0-9]
\w 包含所有英文字符[a-zA-Z_0-9]
\W 除所有英文字符外[^a-zA-Z_0-9] —–匹配特殊字符
\s 包含空白区域 如回车,换行,分页等[\f\n\r]

4,正则表达式元字符

* 匹配前一个内容的0次或多次
. 匹配内容的0次或多次,但不包含回车换行
+ 匹配前一个内容的1次或多次
? 匹配前一个内容的0次或1次
| 选择匹配,类似php中||的用法
^ 匹配字符串首部的内容
$ 匹配字符串尾部内容
\b 匹配单词边界,边界可以是空格或者特殊符号
\B 匹配除带单词边界的意外内容
{m} 匹配前一个内容的重复次数为m次
{m,} 匹配前一个内容的重复次数大于等于m次
{m,n} 匹配前一个内容的重复次数m次到n次
() 合并整体匹配,并放入内存,可使用\\1\\2依次获取调用

5,正则表达式中的 模式修正符

(1)运算顺序
遵循从左到右的的运算规则
()圆括号是最高的 第一优先级
* ? + {} 重复匹配内容 为第二优先级
^ $ \b 边界处理 为第三优先级
| 条件处理 为第四
最后按照运算顺序计算匹配
(2)模式修正符
是为正则表达式增强和补充的一个功能,使用在正则之外
例子:/正则/U U就表示一个模式修正符
一下几个为php中常用的:(注意:区分大小写)
i 正则内容在匹配时候不区分大小写(默认是区分的)
m 在匹配首内容或者尾内容时候采用多行识别匹配
s 将转义回车取消是为单位匹配如.匹配的时候
x 忽略正则中的空白
A 强制从头开始匹配
D 强制$匹配尾部任何内容\n
U 禁止贪mei匹配,只跟踪到最近的一个匹配符并结束,常用在采集程序的正则表达式
例子:
</div>
<div id="_mcePaste"><?php</div>
<div id="_mcePaste">$pot="/\d{1,4}(.*)\d{1,2}\\1\d{1,2}/";</div>
<div id="_mcePaste">$cont="2010-12-08";</div>
<div id="_mcePaste">if(preg_match($pot,$cont,$arr)){</div>
<div id="_mcePaste"><span style="white-space: pre;"> </span>echo "匹配成功".$arr[0];</div>
<div id="_mcePaste">}else{</div>
<div id="_mcePaste"><span style="white-space: pre;"> </span>echo "匹配不成功";</div>
<div id="_mcePaste">}</div>
<div id="_mcePaste">?></div>
<div id="_mcePaste">

6,全局匹配函数

preg_match_all(string pattern,string subject,array matches[,int flags])
主要功能:截取比较详细的内容,采集网页,分析文本
例子:
</div>
<div id="_mcePaste"><?php</div>
<div id="_mcePaste">$str="aaa<bbb>ccc<dddd>eee";</div>
<div id="_mcePaste">$mode="/<.*>/U";</div>
<div id="_mcePaste">if(preg_match_all($mode,$str,$arr)){</div>
<div id="_mcePaste"><span style="white-space: pre;"> </span>echo "匹配成功".print_r($arr);</div>
<div id="_mcePaste">}else{</div>
<div id="_mcePaste"><span style="white-space: pre;"> </span>echo "匹配不成功";</div>
<div id="_mcePaste">}</div>
<div id="_mcePaste">?></div>
<div id="_mcePaste">

7,替换函数

preg_replace(mixed pattern,mixed replacement,mixed subject[,int limit])
与str_replace字符串替换相比,功能更加强大
注意:1,替换内容可以是一个正则也可以是一个数组正则
2,替换内容可以通过修正符e来解决替换执行内容
用途:替换一些比较复杂的内容上,也可以用于内容的转换上
例子:
</div>
<div id="_mcePaste"><?php</div>
<div id="_mcePaste">$str="aaa<bbb>ccc<dddd>eee";</div>
<div id="_mcePaste">$mode="/<.*>/U";</div>
<div id="_mcePaste">echo preg_replace($mode,"替换内容",$str);</div>
<div id="_mcePaste">?></div>
<div id="_mcePaste">
例2:数组正则替换
</div>
<div id="_mcePaste"><?php</div>
<div id="_mcePaste">$str="aaa<bbb>ccc<dddd>eee";</div>
<div id="_mcePaste">$mode=array("/<bbb>/","/<dddd>/");</div>
<div id="_mcePaste">$m=array("/<yyy>/","/<mmmm>/");</div>
<div id="_mcePaste">echo preg_replace($mode,$m,$str);</div>
<div id="_mcePaste">?></div>
<div id="_mcePaste">
例3:md5正则替换
</div>
<div id="_mcePaste"><?php</div>
<div id="_mcePaste">$str="密码1:bbb\n密码2:BBB";</div>
<div id="_mcePaste">$mode="/(bbb)/ie";</div>
<div id="_mcePaste">//参数1为正则替换一次,如过2,这连后面的大写b也正则匹配了</div>
<div id="_mcePaste">//preg_replace($mode,"md5(\\1)",$str,1);</div>
<div id="_mcePaste">echo preg_replace($mode,"md5(\\1)",$str);</div>
<div id="_mcePaste">?></div>
<div id="_mcePaste">

8,正则切割函数

preg_split(string pattern,string subject[,int limit[,int flags]])
通过正则表达式来切割相关内容,类似之前学过的explode切割函数,但explode只能按照一种方式切割有局限性
例子:
</div>
<div id="_mcePaste"><?php</div>
<div id="_mcePaste">$str="asd,sdsa,efsd,we。dce,sec";</div>
<div id="_mcePaste">$mode="/[,.。]/";</div>
<div id="_mcePaste">$arr=preg_split($mode,$str);</div>
<div id="_mcePaste">for($i=0;$i<count($arr);$i++){</div>
<div id="_mcePaste"><span style="white-space: pre;"> </span>echo $arr[$i]."<br>";</div>
<div id="_mcePaste">}</div>
<div id="_mcePaste">?></div>
<div id="_mcePaste">

No responses yet

尚未发布的 iPad 应用商店的截图

三 27 2010 Published by zdy under 杂七杂八, 电子科技

尚未发布的 iPad 应用商店的截图

E文:http://www.appannie.com/blog/ipad-app-store-screenshots/

No responses yet

译文:四步设置HTTP文件下载

三 27 2010 Published by zdy under 编程技巧

网站不仅仅只包含网页,有时你需要提供用户能下载的文件。将你的文件放到服务器上并在网页中附上链接只是第一步,你还需意识到HTTP响应的头文件影响文件下载。

提示一:强制下载并控制文件名

在HTML中提供一个下载链接很简单:

<a href="http://www.jokejust.com/jokejust.exe">Download<a>

对于浏览器不知道如何呈现的二进制文件,如安装程序和ZIP文件,这工作的很好。这会出现一个对话框,允许用户将文件存储到本地。

IE File Save Dialog

问题在于,如果文件能呈现自己,不同的浏览器行为就不一样。例如,如果你链接一个纯文本文件,浏览器会打开它,不会提示保存下载。

Plain Text in IE

你可以加入以下响应头文件强制使用文件下载对话框。

Content-Disposition: attachment; filename=<file name.ext>

头部还可以控制默认的文件名,这可以帮助你方便的生成像getfile.aspx一样的内容,但你要提供一个更有意义的文件名给用户。

对于静态内容,您可以在您的Web服务器手动配置额外的头文件。例如,下面是在IIS中设置:

content_disposition_header

为动态生成的内容,您需要在网页的服务器端代码中添加此头部。

加入了头部之后,浏览器总是提示用户下载该文件:

plain_text_download

提示2:使用有效的HTTP缓存

与任何其他内容一样,它值得设置HTTP缓存最大限度地提高下载速度,减少带宽的成本。常规的内容需要立即过期,或者被永远缓存。

我们下载HTTP规范(RFC2616)的例子可以永远被缓存,因为不希望改变它。在HttpWatch可以看到这些,我们设置了一个很长的过期时间,并将Cache-Control 的值设为“public”。

effective_caching

这样将来下载文件就可以从本地浏览器缓存中或中间代理来传输。如果该文件频繁变换,你可能需要它立即过期,以便总是下载新的副本。你可以通过设置Expires为-1或以往的任何日期。

提示3:不要破坏IE浏览器HTTPS下载

利用Cache-Control响应头部,人们可以很容易的使用无存储和无缓存以防止任何一个文件缓存频繁更新。

Cache-Control: no-store, no-cache

这在Firefox能工作,但在Internet Explorer就得要小心。它将这些标签解释为--正在是用HTTPS 时,内容永远不会存储到磁盘,导致文件下载对话框在0%挂起几分钟。

https_ie_hang

它最终会显示一条错误信息:

https_ie_error.png

post on Eric Lawrence’s IEInternals blog 这篇文章中,有更多关于此问题和其它原因的信息。

提示4:不要忘了Setup Analytics

在你的的网站,你可能要一并跟踪下载文件和其他指标。基于JavaScript基础的解决方 案,如谷歌分析备受欢迎,但默认情况下不显示文件下载。这是因为下载一个文件不会导致任何JavaScript的执行。使用谷歌分析,您需要添加一个 onlick处理程序来追踪下载。

<a onclick="pageTracker._trackPageview('/httpwatch.exe');" href="...">Download</a>

你可以看到文件开始下载之前谷歌分析被调用了。

原文地址:Four Tips for Setting up HTTP File Downloads

No responses yet

phpbb批量添加用户

三 26 2010 Published by zdy under 编程技巧

虽然国内建站在论坛方面首先考虑discuz(php),phpwind(php)和dvbbs(asp)。但是在国外使用phpbb还是比较多。

虽然以前前一直没用过也没听过phpbb,自然也没什么兴趣去看他的代码。但是前天的CMS课上,老师给我们4个小时的时间做一个给phpbb批量添加用户的脚本。

使用方法,修改相应的数据库连接代码,然后把这个文件方上服务器就可以了。上传文件用excel另存csv就可以了

添加单个用户

<div id="_mcePaste"><?php
$username	= $_POST['username'];
$password	= $_POST['password'];
$email		= $_POST['email'];
if($username&&$password&&$email){
	$bd = mysql_connect("localhost", "root", "root") or die('Connessione fallita' . mysql_error());
	mysql_select_db('phpbb') or die('Selezione Database' . mysql_error());
	$pass	= md5($password);
	$now	= time();
	$check=mysql_query("SELECT * FROM users WHERE username='$username' OR user_email='$email'") or die(mysql_error());
	if(!mysql_fetch_array($check)){
		$sql	= "INSERT INTO `users` (`user_type`, `group_id`, `user_permissions`, `user_perm_from`, `user_ip`, `user_regdate`, `username`, `username_clean`, `user_password`, `user_passchg`, `user_pass_convert`, `user_email`, `user_email_hash`, `user_birthday`, `user_lastvisit`, `user_lastmark`, `user_lastpost_time`, `user_lastpage`, `user_last_confirm_key`, `user_last_search`, `user_warnings`, `user_last_warning`, `user_login_attempts`, `user_inactive_reason`, `user_inactive_time`, `user_posts`, `user_lang`, `user_timezone`, `user_dst`, `user_dateformat`, `user_style`, `user_rank`, `user_colour`, `user_new_privmsg`, `user_unread_privmsg`, `user_last_privmsg`, `user_message_rules`, `user_full_folder`, `user_emailtime`, `user_topic_show_days`, `user_topic_sortby_type`, `user_topic_sortby_dir`, `user_post_show_days`, `user_post_sortby_type`, `user_post_sortby_dir`, `user_notify`, `user_notify_pm`, `user_notify_type`, `user_allow_pm`, `user_allow_viewonline`, `user_allow_viewemail`, `user_allow_massemail`, `user_options`, `user_avatar`, `user_avatar_type`, `user_avatar_width`, `user_avatar_height`, `user_sig`, `user_sig_bbcode_uid`, `user_sig_bbcode_bitfield`, `user_from`, `user_icq`, `user_aim`, `user_yim`, `user_msnm`, `user_jabber`, `user_website`, `user_occ`, `user_interests`, `user_actkey`, `user_newpasswd`, `user_form_salt`, `user_new`, `user_reminded`, `user_reminded_time`) VALUES
	(0, 2, 0x3030303030303030303036787271656977770a6931636a796f3030303030300a716c61713532303030303030, 0, '127.0.0.1', $now, '$username', '$username', '$pass', $now, 0, '$email', 282589336312, '', $now, $now, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 'en', 1.00, 0, 'D M d, Y g:i a', 1, 0, '', 0, 0, 0, 0, -3, 0, 0, 't', 'd', 0, 't', 'a', 0, 1, 0, 1, 1, 1, 1, 230271, '', 0, 0, 0, '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'b3926a7717a7ca0d', 1, 0, 0);";
		mysql_query($sql);
		echo "Success<br/>";
	}else{
		echo "Failed! username or email used<br/>";
	}
}
?>
<html>
	<head>
		<title>Add user</title>
	</head>
<body>
<form action="#" method="post">
<label>username:<input name="username"/></label>
<label>password:<input type="password" name="password"/></label>
<label>email:<input name="email"/></label>
<input type="submit" value="submit"/>
</form>
<a href="adduser.php">Ajouter un compte</a>
<a href="addusers.php">Ajouter multi comptes</a>
</body>
</html></div>

使用csv文件批量添加用户

<?php
$csv=$_FILES["csv"];
if($csv&&$csv["type"]=="text/csv"){
	$list=file($csv["tmp_name"]);
	if($list){
		$bd = mysql_connect("localhost", "root", "root") or die('Connessione fallita' . mysql_error());
		mysql_select_db('phpbb') or die('Selezione Database' . mysql_error());
		foreach($list as $value){
			list($username,$password,$email)=explode(";",$value);
			if($username&&$password&&$email){
				addusers($username,$password,$email);
			}
			unset($username,$password,$email);
		}
		echo "success";
	}
}

function addusers($username,$password,$email){
	$pass	= md5($password);
	$now	= time();
	$check=mysql_query("SELECT * FROM users WHERE username='$username' OR user_email='$email'") or die(mysql_error());
	if(!mysql_fetch_array($check)){
		mysql_query("INSERT INTO `users` (`user_type`, `group_id`, `user_permissions`, `user_perm_from`, `user_ip`, `user_regdate`, `username`, `username_clean`, `user_password`, `user_passchg`, `user_pass_convert`, `user_email`, `user_email_hash`, `user_birthday`, `user_lastvisit`, `user_lastmark`, `user_lastpost_time`, `user_lastpage`, `user_last_confirm_key`, `user_last_search`, `user_warnings`, `user_last_warning`, `user_login_attempts`, `user_inactive_reason`, `user_inactive_time`, `user_posts`, `user_lang`, `user_timezone`, `user_dst`, `user_dateformat`, `user_style`, `user_rank`, `user_colour`, `user_new_privmsg`, `user_unread_privmsg`, `user_last_privmsg`, `user_message_rules`, `user_full_folder`, `user_emailtime`, `user_topic_show_days`, `user_topic_sortby_type`, `user_topic_sortby_dir`, `user_post_show_days`, `user_post_sortby_type`, `user_post_sortby_dir`, `user_notify`, `user_notify_pm`, `user_notify_type`, `user_allow_pm`, `user_allow_viewonline`, `user_allow_viewemail`, `user_allow_massemail`, `user_options`, `user_avatar`, `user_avatar_type`, `user_avatar_width`, `user_avatar_height`, `user_sig`, `user_sig_bbcode_uid`, `user_sig_bbcode_bitfield`, `user_from`, `user_icq`, `user_aim`, `user_yim`, `user_msnm`, `user_jabber`, `user_website`, `user_occ`, `user_interests`, `user_actkey`, `user_newpasswd`, `user_form_salt`, `user_new`, `user_reminded`, `user_reminded_time`) VALUES
	(0, 2, 0x3030303030303030303036787271656977770a6931636a796f3030303030300a716c61713532303030303030, 0, '127.0.0.1', $now, '$username', '$username', '$pass', $now, 0, '$email', 282589336312, '', $now, $now, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 'en', 1.00, 0, 'D M d, Y g:i a', 1, 0, '', 0, 0, 0, 0, -3, 0, 0, 't', 'd', 0, 't', 'a', 0, 1, 0, 1, 1, 1, 1, 230271, '', 0, 0, 0, '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'b3926a7717a7ca0d', 1, 0, 0);");
	}
}

?>
<html>
	<head>
		<title>Ajouter multi comptes</title>
	</head>
<body>
<form action="#" method="post" enctype="multipart/form-data">
<label>csv:<input type="file" name="csv"/></label>
<input type="submit" value="submit"/>
</form>
<a href="adduser.php">Ajouter un compte</a>
<a href="addusers.php">Ajouter multi comptes</a>
</body>
</html>

No responses yet

称赞Google

三 26 2010 Published by zdy under 互联网

Google.cn切换到了Google.com.hk
这个举动实在是包含太多智慧了
从严格意义上,Google并没有撤出中国.
因为香港是中国的一部分,不是么?
所以媒体凭什么抨击Google???
除非你们认为香港不是中国.
还有.如果你屏蔽Google香港
那么是不是意味着你居然自己人都不相信?
在国家内都搞封闭?
而香港的法律来说.有更多的言论自由是不言而喻的.虽然比以前差多了.
但是仍旧能够保证Google内容的完整性
Google这步棋实在是太NB了.

谷歌跳转到香港后,搜索时你会发现右上角写着“开启了安全搜索功能”,而这个功能在界面语言为简体中文时是“无法关闭”的,所以如果你想完全体验无过滤的谷歌,请在搜索设置中切换语言到繁体中文或英文,然后选不要筛选搜索结果。

No responses yet

EasyUI如期而至,jQuery替代Extjs

三 25 2010 Published by zdy under 编程技巧

前台开发,很多人喜欢用JQuery,但是在做后台管理系统,特别是企业管理系统,例如WEB进销存系统等,很多人都会选择ExtJS,因为ExtJS提供了非常多的UI界面,并且非常友好。

现在JQuery也有一个很好的UI插件了,几乎完全可以替代ExtJS,下面来看看对比:

jQuery EasyUI framework help you build your web page easily.

  • easyui is a collection of user-interface plugin based on jQuery.
  • using easyui you don’t need to write many javascript code, you usually defines user-interface by writing some HTML markup.
  • easyui is very easy but powerful.

Easy UI的使用也非常地简单:

<div>
<div><!--

Code highlighting produced by Actipro CodeHighlighter (freeware)

http://www.CodeHighlighter.com/

--><script type="text/javascript" src="../jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="../jquery.easyui.min.js"></script></div>
</div>

与引用其它JQuery插件类似。具体使用可以参考官方地址:http://jquery-easyui.wikidot.com/tutorial

下面是Easy ui目前提供的所有插件功能:

Menu and Button

Create a simple menu

Create a Link Button

Create a Menu Button

Create a Split Button

Layout

Build border layout for Web Pages

Complex layout on Panel

Create Accordion

Create Tabs

Create XP style left panel

DataGrid

Convert a HTML table to DataGrid

Add a pagination to DataGrid

Get selected row data from DataGrid

Add a toolbar to DataGrid

Frozen columns for DataGrid

Dynamic change DataGrid columns

Formatting DataGrid columns

Add sorting to DataGrid

Create column groups in DataGrid

CheckBox select on DataGrid

Window

My first window

Custom window tools

Window and Layout

Create Dialog

Tree

Create Tree from markup

Create Async Tree

Append nodes to tree

Form

Submit a form with Ajax

Add ComboTree field to a form

Form Validation

用过ExtJS的朋友都知道,他与JQuery来比,ExtJS是比较臃肿的一个JS框架,JQuery它是一个公认的轻量级JS框架,而基于JQuery的Easy UI它能够完全胜任我们的基本开发需求,并且比ExtJS要轻量许多。

赶快去体验吧,一定会对你的工作有很大帮助的!下载地址:http://jquery-easyui.wikidot.com/download

No responses yet

谷歌中国搜索服务正式关闭

三 22 2010 Published by zdy under 杂七杂八

美国时间三月二十二日下午(中国大陆时间三月二十三日凌晨)搜索引擎巨人Google所在中国谷歌搜索服务正式关闭,现在www.google.cn被转接至www.google.hk,同时大陆用户可以选择使用英文,繁体中文或者简体中文来继续搜索。与此同时谷歌中国的其他业务运营正常包括 Google Talk,Google Docs,Google Map,Google Code等。
个人感觉这样更有利于国内用户,之前的google.cn居然连用户登链接都没有,早就该关了…

No responses yet

Web 设计中的苹果风

三 22 2010 Published by zdy under 编程技巧

优雅的设计贯串苹果所有的产品,也包括网站,不仅苹果自己的网站,世界上有无数模仿苹果的网站设计,然而是什么构成了苹果式网站设计风格?浅淡的配 色,大面积留白,清晰统一的导航,雅致的图标,还有,拒绝使用 Flash,本文分析了 Web 设计中苹果风的构成元素,并提供了大量苹果风 Web 设计案例供大家欣赏。

苹果风构成元素

浅色系与微妙的渐变色

留白,留白

清晰明快的字体

产品图片充满美感

雅致的图标

干净整洁的网格布局

清晰,友好,一致的导航

产品功能的介绍结合非常出色的图片,视频

小而清晰的字体

靠明显的对比效果引起注意

简洁的指南

不使用 Flash

苹果风 Web 设计欣赏之一:苹果家族

Apple Developer

Apple Store

Apple Mac

Apple iPhone

Apple Support

苹果风 Web 设计欣赏之二:仿苹果家族

1. Panic Coda

这是一个非常受欢迎的 Mac 代码编辑器

2. AteBits

简单就是美

3. Cultured Code

漂亮的图标贯串始终,对内容的组织很有效

4. Mac Rabbit

灰白色系黑渐变,雅致的图标

5. Twelve South

非常漂亮的产品图片,苹果产品图片

6. Metalabs

虽然表面上不是很苹果,但骨子里。BTW,这就是据说被 Mozilla 的一款产品的 UI 所抄袭的设计 (译者注)

7. Version App

很黑,但仍然很苹果

8. IconDock

9. Acrylic Apps

10. Billings App

深得苹果精髓的设计,大产品图 + 灰白蓝色系 + 大小对比强烈的字体

11. Postage

12. Bohemian Coding

13. Checkout App

14. Nprinting

15. PostBox Inc

16. Symphony CMS

17. Invoice Machine

18. Icon Designer

19. Transmission Apps

20. 280 Slides

21. Ware House App

22. PixelMator

23. SnowTape

24. Mac Themes

25. Small Transport

26. Tea Round

这是 iPhon 产品站点,虽然有些区别,但苹果的东西是抹不掉的

27. Tap Bots

导航很苹果

28. Agile Web Solutions

如果你点一下它的导航,会想起苹果,虽然初看并不像

29. Araelium Group

30. Midnight Apps

31. Real Mac Software

32. Cocoa Dev Central

33. Potion Factory

这个设计中对 JS 的应用很美

34. Tao Effect

35. Task Mate

非常简洁

36. Vibealicious Notify 2

37. Sequel Pro

38. Tapulous

39. OrbiCule

40. Pzizz

41. Roo Switch

42. Mint

43. Stunt Software

44. Font Explorer X

45. Server Skine

46. Source Bits

47. Suki

48. Using Mac

49. App Zapper

50. Plex App

51. Machine Codex

52. Vuu Media

53. OmniGroup

54. Project Wizards

55. Acqualia

56. Zenna Ware

57. Busy Mac

58. Tim Van Damme

59. Cellar App

60. AppBodega

本文国际来源:http://www.1stwebdesigner.com/inspiration/apple-inspired-websites-why-design-works/

No responses yet

web application security scanner

三 21 2010 Published by zdy under 杂七杂八

web application security scanner
http://code.google.com/p/skipfish/

No responses yet

Twitter : La route vers les 10 milliards de tweets en image

三 19 2010 Published by zdy under 互联网

Twitter, l’outil de réseau social et de microblogging qui permet à l’utilisateur d’envoyer gratuitement des messages brefs, appelés tweets, par Internet est incontestablement un réel succès.

Voici une image récapitulative qui s’attarde sur la route de Twitter pour arriver jusqu’à 10 milliards de tweets.

[Via Mashable]

No responses yet