Skip navigation.

陷入虚无的天狼

Posts tagged with "web"

一组魔数

在 Digg 网站发生的大件事是由 09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0 ,这组号码所引发。这组是什么号码呢?

大约在今年 2007 年 2 月的时候,骇客 amezami 在著名视频技术论坛 Doom9 对外宣布,他已经成功破解了新一代 DVD 格式 Blu-ray 和 HD DVD 的加密技术。 Blu-ray 和 HD DVD 的加密技术是电影企业们用来对付盗版的重要措施,这些世界企业寄予了厚望给这些加密技术,希望以此拯救全世界的影视工业。

破解加密技术的关键是一组号码 09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0 ,这组号码就好像是密码,使用这组密码可以轻松解密 Blu-ray 和 HD DVD ,再直接地说就是,我们可以轻易制造出盗版了。

那么 09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0 和 Web 2.0 和 Digg 有什么关系呢?

Digg 和 09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0

在今天下午,也就是马来西亚和中国时间的 2007 年 5 月 2 日下午,某某位 Digg 会员把有关上面这个 DVD 破解的消息提交到了 Digg ,短时间内,这个消息获得非常高的票数,自动排到了 Digg 首页。

这时候正是大事件的开始, Digg 的管理层因为赞助商或广告商的关系,以违反条规为由,把这个 DVD 被破解消息删除了,同时发布了部落格文章对这样的行为表态,《 What’s Happening with HD-DVD Stories? 》。

Digg 用户在发现了管理层的遮蔽行为后极为愤怒,认为这样阻止了言论自由,违反 Web 2.0 以用户为中心的原则,结果大家群情汹涌,群起蜂拥发起示威行动,部分 Digg 用户呼吁大家一起投票,把所有有关 HD DVD 的消息排到首页,让 Digg 首页完全充满 09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0 这组号码。

Digg 完全被攻陷

来到这个时候,整件事情到来了沸点,来到了最高潮,在极短的时间内,用户们的力量完全显现了在 Digg 首页。当时的 Digg 首页,每一项的提交都离不开 09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0 这组号码,而且每一项的投票量都异常高。

Digg 的用户们持续不断地进行示威行动,从事件开始后有关的提交不断涌现, Digg 首页不断更新,每一项更新都是 9D 74 E3 5B D8 41 56 C5 63 56 88 C0 ,没有间断。这个时候我用这句话来形容,“ Digg 已经被用户完全攻陷了”。

Digg 管理层的低头

经过一阵轰轰烈烈的示威,一段不长的时间, Digg 管理层终于认输,他们听从用户们的意愿,不再做任何损害用户利益的遮蔽行为,他们再次发布部落格文章表态,《 Digg This: 09-f9-11-02-9d-74-e3-5b-d8-41-56-c5-63-56-88-c0 》。

Digg 的创办人 Kevin Rose 在文章里说,他们听到了用户们的声音,“看到了上百篇文章和上千的留言,我们看清楚了你们的意愿,你们宁愿看到 Digg 去跟大企业对抗,我们听到了,从即刻起,我们不会再删除任何有关这组号码的文章提交和留言,我们会面对所有可能发生的后果。”

Digg 始终低头,在文章的最后,创办人 Kevin Rose 说,“ If we lose, then what the hell, at least we died trying.....But now, after seeing hundreds of stories and reading thousands of comments, you’ve made it clear. You’d rather see Digg go down fighting than bow down to a bigger company. We hear you, and effective immediately we won’t delete stories or comments containing the code and will deal with whatever the consequences might be. ”

web2.0下的几个网站

分享网络书签我们可以用del.icio.us(365sky, zhuaxia)
分享图片我们可以用flickr
分享视频片段我们可以用youtube
分享音乐webjaylast.fm(*)
last.fm和web.jay不同,是音乐分享的另一种方式。虽然分享的依然是列表.但是它是通过在本地播放器上安装一个插件,把你播放器的播放列表在网站上同步显示.然后提供XML输出.这样别人就可以订阅了,或者在blog或者网站上调用你的播放列表.达到音乐分享的目的.

国内豆瓣网比较不错
http://www.douban.com/
还有开发中的音乐八宝盒不知道会怎么样
http://www.8box.cn/

Blog与门户

blog经过几年的发展,随着tag、rss等技术的出现,已经远远超出了最初的个人日志的形式,现在开始向门户型网站转型,不仅仅是个人门户,而且也有企业级blog,如google黑板报。

blog变成个人门户,一、从内容上,不只是自己的日志和链接,还可以通过ajax技术将他人的日志聚合到自己的blog页面一共显示。(参见http://www.songlian.cn/read.php?84)在自己Blog上聚合并显示朋友Blog的最新文章,这样方便自己及时了解朋友的消息,另外,也方便访问者找到和本Blog相关的blog和文章。这个功能你可以叫它“Blog聚合”或者“Blog联播”。二、blog程序或BSP(blog服务提供商)应提供更加个性化的操作,提供所见即所得的web页面设计功能(例如将google的个性主页服务与blog结合)。据说著名的squarespace就提供了这样的功能http://www.squarespace.com/ ,相似的还有 http://www.maxkiesler.com/index.php/designdemo/

企业blog,如google黑板报,成为一个内部交流和外部宣传平台。目前google不仅有blogger(http://www.blogger.com),和新发布的个性化主页,很早以前就对企业用户推出了企业级的个性主页服务,而且google还为开发人员开放了相关的api(针对google pages模块少,有人马上就做出了http://www.googlemodules.com/),google现在真是可怕啊。



  

个人建站推荐软件

一、LAMP:linux+Apache+MySQL+Php(zend optimizer),目前最流行的组合,在此之上:
1.drupal,CMS(内容管理系统)系统,集成论坛、blog、文档管理等模块,主页区块化(block)布局,可以将各模块的最新内容分块显示。
官方站点drupal.org,目前尚无中文站,不过已经汉化。据说技术先进,国内的著名的海微linux,emacs的mule-gbk的作者中科大的詹剑的个人站点均采用此系统。博客中国开站时一度也曾想采用此系统。
应用站点举例:海微linux http://linux.hiweed.com
国内最大的pda站点 http://www.hi-pda.com/drupal//

2.xoops,CMS(内容管理系统)系统,同上,其blog模块采用目前最流行的wordpress。
官方站点 http://www.xoops.org
中文 http://www.xoops.org.cn/

3.wordpress,目前可以说是最流行的blog系统了,如果只是建一个个人blog,首选。

二、Zope代替Apache,Python代替Php
Zope是一个python编写的开放源代码的Web应用服务器
4.Plone,python编写的CMS系统。
官方站点 http://plone.org/
中文 http://www.czug.org/
http://python.cn/

三、Java代替Php
4.DLOG4J,中国人自己开发的一个基于java的CMS系统。
http://www.javayou.com/main.jspe

Apache+php+MySQL+Tomcat

最近学习java,机器上原来装了Apache+php+MySQL,就加一个Tomcat上去。(以下在win中操作,linux我用debian,apt-get,然后小改一下配置文件,大致相同)

一: 安装apache 并配置支持PHP
将apache安装在 D:\Net\apache2 目录(随自己喜好)下,将php-5.x.x-Win32.zip 里内容解压到 D:\Net\php 里。找到php目录里的php.ini-dist重命名为 php.ini并拷到 windows目录里(win2k里为winnt)如我的php.ini是拷到 C:\windows目录。再将php目录里的 php5ts.dll,libmysql.dll 拷到 系统目录(system/system32) 如我的是C:\windows\system32里
配置apache里的httpd.conf
打开 D:\Apache2\conf\httpd.conf 这个文件
找到 DocumentRoot "D:/Net/Apache2/htdocs" 将其改为你的WEB目录(可不改)如我的为 DocumentRoot "D:/Net/website"
找到 DirectoryIndex index.html index.html.var 在后面加入 index.htm index.php index.jsp

选择安装模式: 模块化模式安装 或 CGI模式安装 (选一样即可)

--------------模块化安装配置------------------------------------
找到 #LoadModule ssl_module modules/mod_ssl.so 这行,在此行后加入一行
LoadModule php5_module d:/php/php5apache2.dll
其中d:/php/php5apache2.dll 为你php目录中php5apache2.dll所在的位置
找到 AddType application/x-gzip .gz .tgz 这行,在此行后加入
ScriptAlias /php/ "d:/php/"
AddType application/x-httpd-php .php
Action application/x-httpd-php "/php/php-cgi.exe"
---------------------------------------------------------------

此时PHP环境基本已经配置成功
在WEB根目录(如我的D:\website)里建一个名为test.php的文件内容如下
<? echo phpinfo(); ?>
重新启动apache服务
用浏览器打开 http://localhost/test.php
如果可以看到php配置输出信息就OK了

二:安装mysql

将mysql安装到指定目录,(首选4.1,5.0的有的老程序可以支持的不够好,不过5.0的可以强制使用4.0模式工作)如我的是d:/Net/mysql。

增加mysql用户从本机访问数据库的权限(运行JSP需要),注意括号内的内容不要输入:
#cd /usr/local/mysql/bin
#./mysql
mysql>GRANT ALL PRIVILEGES ON *.* TO mysql(用户名)@localhost.localdomain(本机的主机名) IDENTIFIED BY ''(密码);
mysql>quit

三、配置php.ini并测试mysql(php.ini为 d:\windows下的 php.ini)
找到extension_dir = "./" 改为 extension_dir = "d:/php/ext"
找到
;extension=php_mysql.dll
;extension=php_mbstring.dll
将';'去掉改为
extension=php_mysql.dll
extension=php_mbstring.dll
(MySQL5中有php_mysqli.dll)
找到
;session.save_path = "/tmp"
将';'去掉 设置你保存session的目录,如
session.save_path = "D:/Net/php/session_temp";

宽字符集设定
; Set default language
mbstring.language = Neutral; Set default language to Neutral(UTF-8) (default)
mbstring.language = English; Set default language to English
mbstring.language = Japanese; Set default language to Japanese

;; Set default internal encoding
;; Note: Make sure to use character encoding works with PHP
mbstring.internal_encoding = UTF-8 ; Set internal encoding to UTF-8

;; HTTP input encoding translation is enabled.
mbstring.encoding_translation = On

;; Set default HTTP input character encoding
;; Note: Script cannot change http_input setting.
mbstring.http_input = pass ; No conversion.
mbstring.http_input = auto ; Set HTTP input to auto
; "auto" is expanded to "ASCII,JIS,UTF-8,EUC-JP,SJIS"
mbstring.http_input = SJIS ; Set HTTP2 input to SJIS
mbstring.http_input = UTF-8,SJIS,EUC-JP ; Specify order

;; Set default HTTP output character encoding
mbstring.http_output = pass ; No conversion
mbstring.http_output = UTF-8 ; Set HTTP output encoding to UTF-8

;; Set default character encoding detection order
mbstring.detect_order = auto ; Set detect order to auto
mbstring.detect_order = ASCII,JIS,UTF-8,SJIS,EUC-JP ; Specify order

;; Set default substitute character
mbstring.substitute_character = 12307 ; Specify Unicode value
mbstring.substitute_character = none ; Do not print character
mbstring.substitute_character = long ; Long Example: U+3000,JIS+7E7E

重启apache服务
在Web根目录下(如 D:\website)建立testdb.php文件内容如下:
<?php
$link=mysql_connect('localhost','root','123456');
if(!$link) echo "fail";
else echo "success";
mysql_close();
?>
用浏览器打开http://localhost/testdb.php 如果输出success就OK了

MySql5使用4模式工作:my.ini中加上sql-mode='MYSQL40'或start mysqld with the option --sql-mode="MYSQL40"
#Use old password encryption method, my.ini中加上
old_passwords
my.ini中注释掉下面一行
--------REPLACE THIS TEXT------------------------------
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
------WITH THIS TEXT-----------------------
#sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

四、phpmyadmin的安装配置

将phpMyAdmin-2.x.x.zip解压到WEB根目录中去,重命名文件夹为phpmyadmin或其它
打开phpmyadmin/libraries 目录中的 config.default.php
找到
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = '123456';
分别填上你mysql的用户和密码即可

五、安装jakarta-tomcat-5.5
添加环境变量CATALINA_HOME,tomcat安装目录。
1.整合Apache和Tomcat,下载mod_jk-apache-2.0.55.so,在httpd.conf中加入
LoadModule jk_module modules/mod_jk-apache-2.0.55.so
JkWorkersFile "d:/Net/Apache2/Apache2/conf/workers.properties"
workers.properties内容
# Usually commented out on production environments
[logger.apache2]
file="D:/Net/Apache2/Apache2/logs/error.log"
level=ERROR
# Provide the basic config needed
[config]
file=D:/Net/Apache2/Apache2/conf/workers2.properties
debug=1
# Provide the location of shm file on the Apache web server
[shm]
file=D:/Net/Apache2/Apache2/conf/jk2.shm
size=1000000

[channel.socket:localhost:8009]
port=8009
host=localhost
#define the worker
[ajp13:localhost:8009]
channel=channel.socket:localhost:8009
# Map the Tomcat examples webapp to the Web server uri space
[uri:/jsp-examples/*]
[uri:/*.jsp]

2.安装mySQL的JDBC驱动,mysql-connector-java-3.1.12.tar.gz,把解压出来的mysql-connector-java-3.1.12-bin.jar拷贝到/tomcat5.5/common/lib中,并添加到java的CLASSPATH中。
JAVA_HOME=.../jdk1.5.0
CLASSPATH=.;%JAVA_HOME%\lib;D:\Net\Tomcat5.5\common\lib\servlet-api.jar;D:\Net\Tomcat5.5\common\lib\mysql-connector-java-3.1.12-bin.jar

测试文件test.jsp
<%@ page contentType="text/html;charset=utf8"%>
<%@ page import="java.sql.*"%>
<html>测试JSP页面(Tomcat+MySQL)<body>
<%Class.forName("org.gjt.mm.mysql.Driver").newInstance();
String url ="jdbc:mysql://localhost:3306/mysql?user=root&password=***&useUnicode=true&characterEncoding=utf8";
Connection conn= DriverManager.getConnection(url);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql="select * from user";
ResultSet rs=stmt.executeQuery(sql); %>



<%while(rs.next()) {%>

<%}%>
您的第一个字段内容为: 您的第二个字段内容为:

<%=rs.getString(1)%>

<%=rs.getString(2)%>

<%out.print("Tomcat+JDK+mySQL完整测试,恭喜你,数据库操作成功!");%>
<%rs.close();
stmt.close();
conn.close();
%>
</body>
</html>

注:MySQL5.0中文问题,我一直用utf8,中文没有问题。但是很我国人喜欢用gbk。gb2312和gb18030是国家标准,但很多人就是喜欢gbk,gb2312字少,gb18030比较恶心。why no utf8?
gbk解决方案如下:
1、在dos环境下,用mysql --default-character-set=gbk -u root -p 这句话进入mysql~~
2、建数据库、表,如下:
create database admin;
use admin;
CREATE TABLE admin (
admin_name char(20) NOT NULL,
admin_password char(20) NOT NULL
) TYPE=MyISAM, default character set gbk;

3Eclipse中数据库插件中操作数据库时的中文编码问题:
当在Eclipse中装上来你所喜欢的数据库插件的时候,都会出现在你查询某一个数据库之后出现记录中的汉字乱码。解决方法很简单,只要在你建立数据库连接的时候把URL设置成下面这个样子就可以了:
URL=jdbc:mysql://localhost:3306/?useUnicode=true&characterEncoding=GBK
编辑JSP文件时,<%@ page contentType="text/html;charset=GB2312" %>设置成这样子,且这条语句必须是整个JSP文件的第一条语句,就可以避免JSP文件在浏览器中显示时出现乱码;对于如果在JSP网页中要从HTML页面中接收数据,那么在JSP中的接收语句的汉字编码应与数据来源的HTML的汉字编码相同;例如HTML的汉字编码为charset=GBK,那么在JSP中的接收语句就应该这样设置:
request.setCharacterEncoding("GBK");如果还要将接受的数据插入到数据库中(以插入MySQL5.0数据库为例),那么在插入数据库时的汉字编码也应与HTML文件中的汉字编码相同,设置如下:
con=DriverManager.getConnection("jdbc:mysql://localhost:3306/sample_db?user=dazern&password=5201314&useUnicode=true&characterEncoding=GBK");这样设置后数据库中的数据才不会乱码.

myopera用的是什么技术?

昨天发现my.opera中使用了大量函数都是用perl写的。最近看了看java和web2.0,众多的新技术令人眼花缭乱,还有人对perl写cgi嗤之以鼻,toooold。以前看了一本讲python的书的序,作者以前在yahoo工作,说当年的yahoo就是用perl写的,后来规模扩大之后,发现用perl写大型程序很不爽,改投python了。现在google也是用python最多,google和yahoo还都用到了ajax(Asynchronous JavaScript
and XML)技术。现在看得我不知道该学什么了,我只是一个业余计算机爱好者

Tim O’Reilly--什么是web 2.0
原文地址:http://www.oreillynet.com/pub/a/oreilly/tim/news/2005/09/30/what-is-web-20.html?page=1

WikiPedia的Web 2.0条目下列出了这些条件:
  * CSS 和语义相关的 XHTML 标记
  * AJAX 技术
  * Syndication of data in RSS/ATOM
  * Aggregation of RSS/ATOM data
  * 简洁而有意义的 URLs
  * 支持发布为 weblog
  * RESTian (preferred) 或者 XML Webservice APIs
  * 一些社会性网络元素

Web2.0重要名词解释
  Blog:Blog是个人或群体以时间顺序所作的一种记录,且不断更新。Blog之间的交流主要是通过反向引用(TrackBack)和留言/评论(Comment)的方式来进行的。Blog的作者(Blogger),既是这个Blog的创作人,也是其档案管理人。

  TrackBack:是一种Blog应用工具,它可以让Blogger知道有哪些人看到自己的文章后撰写了与之有关的内容。这种功能实现了网站之间的互相通告;因此它也可以看作一种提醒功能。

  RSS:是一种用于共享新闻和其他Web内容的数据交换规范。读者可以通过RSS订阅一个Blog,确知该Blog最近的更新。

  Wiki:1995年,沃德。坎宁安(WardCunningham)为了方便模式社群的交流创建了全世界第一个wiki系统——WikiWikiWeb,并用它建立了波特兰模式知识库,在建立过程中,沃德。坎宁安创造了Wiki的概念和名称,并且实现了支持这些概念的服务系统。

  SocialBookmark:社会化书签,它可以让你把喜爱的网站随时加入自己的网络书签中;你可以用多个关键词(Tag)而不是分类来标示和整理你的书签,并与其他人共享。

  六度分隔理论:1967 年,StanleyMilgram创立。简单地说:“你和任何一个陌生人之间所间隔的人不会超过六个,也就是说,最多通过六个人你就能够认识任何一个陌生人。”六度分隔理论的数学解释是:如果每个人平均认识260人,其六度就是2606=1188137600000.消除一些节点重复,那也几乎覆盖了整个地球人口若干多倍。

Ajax这个概念的最早提出者Jesse James Garrett认为:Ajax是Asynchronous JavaScript and XML的缩写。Ajax并不是一门新的语言或技术,它实际上是几项技术按一定的方式组合在一在同共的协作中发挥各自的作用,它包括:
  ·使用XHTML和CSS标准化呈现;
  ·使用DOM实现动态显示和交互;
  ·使用XML和XSLT进行数据交换与处理;
  ·使用XMLHttpRequest进行异步数据读取;
  ·最后用JavaScript绑定和处理所有数据;
November 2009
S M T W T F S
October 2009December 2009
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30