Skip navigation.

极湖

无不用其“极”

Posts tagged with "Web"

网站推荐:どう書く?org

, , ,

今天发现一个不错的站点: どう書く?org

网站标题翻译成中文应该是: 怎么写?org

这是一个程序员的社区,很适合程序员之间互相交流和学习,其基本模式是:有人出题,然后征集答案,答案中的程序代码不拘语言,多多益善。答案中的源代码有高亮显示功能,阅读起来比较轻松;系统提供打分的功能,可以对每个答案打分,也可以对题目本身打分;系统还有统计的功能,因此能看到哪些人的答案获得好评最多。题目和答案能用标签分类;该网站的题目和答案提供RSS格式的输出,因此可以订阅。目前我所看到的就这些功能。

看了一下现有的题目和答案,发现这个站点的用户水平比较高,不论哪一门语言,都有“高手”级的人提供代码,如果您关注这个站点的程序,肯定能学到东西。

有点可惜的是,该站点目前只有日文版和部分英文界面,没有中文界面。国内也有人在做类似的社区,不过往往流于论坛的形式,没有新意。如果您正在做类似的站点,或许可以从这个站点上吸取一些灵感。

PHP: CSV格式文件下载函数(新)

,

今天才发现以前写的用来下载csv文件的php代码,在IE7下不灵了,修改之后才把问题解决。

以下是新作的csv格式文件下载函数:

function HTTP_send_csv_data($file_nm, $csv_data, $disposition = 'inline')
{
    if(headers_sent()) {
        return false;
    }

    header( "Cache-Control: public" );
    header( "Pragma: public" );
    header( "Content-type: text/csv" ) ;
    header( "Content-Disposition: $disposition; filename=$file_nm" ) ; 
    header( "Content-Length: ". strlen($csv_data );
    
    $kanji_code = mb_internal_encoding(); // 保存当前内部编码
    mb_http_output("SJIS");             // HTTP文字编码指定用SJIS(客户端是日文Windows的情况)
    mb_internal_encoding($kanji_code);  // 还原内部编码
    
    echo $csv_data;

    return true;
}


以上函数中,Disposition 被默认指定为 'inline',意思是直接在浏览器现实文件内容;如果要强制用户下载(出现对话框),需指定为'attchment'。

以下这两句需注意:

header( "Cache-Control: public" );
header( "Pragma: public" );

老版本的IE没有以上代码也能下载csv文件,IE7 发生错误,XP SP2 的 IE 很可能也会发生错误(未经验证)。

面向设备/OS的 Google 搜索?

,

用普通浏览器访问以下地址:

http://www.google.com/linux
http://www.google.com/bsd
http://www.google.com/mac
http://www.google.com/pda
http://www.google.com/mobile

会得到不同的页面,这些页面“各具特色”。

以上发现,纯属偶然。或许Google早有介绍,我故意先不搜索相关资料,按照自己的想象,随意输入一些名词,看看出什么结果,于是就发现了以上的“秘密”。

有点意思的是,输入 http://www.google.com/windows 得到的是错误页面。

Cygwin 下 lighttpd 安装纪录

, ,

安装

用cygwin的setup,选择组件lighttpd即可完成安装。

创建log路径

$ mkdir /var/log/lighttpd
$ chown :Users /var/log/lighttpd


修改config文件

$ cd /etc/lighttpd/
$ cp lighttpd.conf.default lighttpd.conf
$ chown :Users lighttpd.conf
$ vi lighttpd.conf


主要是修改几个路径:
server.document-root        = "/srv/www/htdocs/"
server.errorlog             = "/var/log/lighttpd/error.log"
server.pid-file            = "/var/run/lighttpd.pid"
accesslog.filename          = "/var/log/lighttpd/access.log"


其他根据自己需要调整。

创建启动/停止脚本
$ vi /etc/rc.d/init.d/lighttpd
内容如下:
#!/bin/sh
#
# lighttpd     Startup script for the lighttpd server with cygwin
#
# chkconfig: - 85 15
# description: Lightning fast webserver with light system requirements
#
# processname: lighttpd
# config: /etc/lighttpd/lighttpd.conf
# pidfile: /var/run/lighttpd.pid
#
# Note: pidfile is assumed to be created
# by lighttpd (config: server.pid-file).
# If not, uncomment 'pidof' line.

# Source function library
#. /etc/rc.d/init.d/functions

if [ -z "$CONF_PATH" ]; then
        CONF_PATH="/etc/lighttpd/lighttpd.conf"
fi

APPNAME="lighttpd"
APPPATH="/usr/sbin/lighttpd"
PIDFILE="/var/run/lighttpd.pid"

RETVAL=0

start() {
        echo -n $"Starting $APPNAME: "
        $APPPATH -f $CONF_PATH
        RETVAL=$?
        echo
        return $RETVAL
}

stop() {
        echo -n $"Stopping $APPNAME: "
        kill `cat $PIDFILE`
        RETVAL=$?
        echo
        return $RETVAL
}

reload() {
        echo -n $"Reloading $APPNAME: "
        kill -HUP `cat $PIDFILE`
        RETVAL=$?
        echo
        return $RETVAL
}

case "$1" in
        start)
                start
                ;;
        stop)
                stop
                ;;
        restart)
                stop
                sleep 2
                start
                ;;
        reload)
                reload
                ;;
        *)
                echo $"Usage: $0 {start|stop|restart|reload}"
                RETVAL=1
esac

exit $RETVAL

在我的机器上,以上文件要保存成Unix格式(LF换行),不然会出错(有点奇怪)。

$ chown :Users /etc/rc.d/init.d/lighttpd
$ chmod a+x /etc/rc.d/init.d/lighttpd


启动/停止测试

$ /etc/rc.d/init.d/lighttpd start
$ ps -ef | grep lighttpd

$ /etc/rc.d/init.d/lighttpd reload
$ ps -ef | grep lighttpd

$ /etc/rc.d/init.d/lighttpd stop
$ ps -ef | grep lighttpd

$ /etc/rc.d/init.d/lighttpd restart
$ ps -ef | grep lighttpd

HTTP测试

打开浏览器,访问
http://localhost/

如能看到网页,即成功。

补充:
在Windows下,或许 lighttpd for windows 用起来会更舒服一些。

为何“Beta”?

,

Beta”是Web2.0的特征或者说是标签之一,一个新的网站推出,总是先有“Beta版”,习以为常了。

今天想总结一下这个“Beta”的意义:

1. 免责。(尚处调试阶段,若有错误,概不负责。)
2. 免费。(有见过Beta版收费的吗?)
3. 测试。(直接让用户参与测试,省却自家的时间与金钱。)
4. 获馈。(获取用户的反馈,以调整和改进功能。)
5. 宣传。(正式版发布之前,先把名头打出去。)
6. 学习。(向谁学习?向Google。学什么?学习打“Beta”标签的“技术”。)

以上纯属个人意见。

博客互踩之道:MyBloglog

,

这些天开始对MyBloglog发生兴趣。

MyBloglog注册了一段时间(我的账号:geelake),也没怎么去这个网站溜达,最近因为考虑怎样宣传自己的网站,才想到了这个MyBloglog。

有人说MyBloglog实现的功能相当于“Click Track”,基本上可以接受这个说法。

MyBloglog主要功能是:汇集来自世界各地的博客以及网站站长,让他们互踩地盘,互相认识。每一个博客(或网站),都可以单独形成一个社区,喜欢这个网站的其他博客可以自由加入这个社区。至于这个社区的功能,目前我发现只聚集了很多头像,头像后面的链接是用户自己的地盘。社区除了聚集头像,还有留言的功能。

MyBloglog的用户登录的网站,大多都会通过URL自动生成缩略图。不能自动生成缩略图的,可以手动上传网页抓图,然后生成缩略图。

吸引MyBloglog上的其他用户访问自己的网站,对普通的博客来说,最关键的恐怕是头像的选择,一个美女的头像,很可能会招来无数点击。对于知名的网站或是博客,头像就不那么重要了,知名博客的社区,自然而然就会聚集很多用户,比如keso

MyBloglog有一个贴心的功能,就是提供Wigdet,一小段JavaScript代码,把这段代码插入自己的网页代码之后,每次打开网页,都能看到最近有哪些人通过MyBloglog访问了自己的网页。

要吸引别人来访问自己的网站,一个不错的方法,就是通过MyBloglog去访问别人的网站。据我试验,很快就会有效果。刚开始可能吸引的不是很多,只要你踩得地盘够多,一定会有很多回访的人,如果你的网站足够好,相信还会有很多回头客。

开源的 Google Web Toolkit

, ,

Google Web Toolkit,一个支持AJAX的Web开发框架,可以从这儿下载:

http://code.google.com/webtoolkit/download.html

Windows,Mac,Linux 三大平台各有一套。

授权协议: Apache 2

看看你的虚拟主机有多少邻居网站

,

Ajaxian.com 2006年度调查结果

, ,

今年,Ajaxian.com 进行了一次 Ajax 使用情况调查,结果于今天发布,我对这个结果比较感兴趣,所以翻译其部分内容如下:

最流行的Ajax框架:



可以看到,Prototype 最为流行,占到了43%。Script.aculo.us 也很有人气,有33%的人选择了这一框架。

最流行的服务器端语言平台:



可以看到,PHP是大赢家,占到了50%。

还有一些比较有意思的结果:
  • 25% 的人拒绝采用 frameworks 而直接采用 XMLHttpRequest (哇哦!)
  • 11% 的人采用 JSON 进行数据传输,不幸的是,ajaxian没有提供足够的问题来对其进行和XML以及其他数据格式的比较。
  • 3% 的人还在使用微软的“经典”ASP 构架; 有 5 个人 (约0.6%) 使用 C++ (+2点用以提高效率,-100点用以提高复杂程度?)。
  • 2% 的人在使用 Adobe 的 Flex 工具套件 (嘿, 那些广告条正在被做成…)。
  • 有一个参与者在用 Delphi (它是怎样为你工作?), 还有一个人使用 LISP (我们会雇用你吗?)。


调查结果的原始数据可从这儿获得。

受关注的10个digg模仿网站

,

Inpact Lab 看到的:

1. Shoutwire

2. Bibilog (链接无效)

3. MySpy

4. Kick.ie

5. Leve1 (链接无效)

6. Wobblog

7. News Bump

8. Staralicious

9. Scooop

10. Blinklist

digg 模式无疑是非常成功的,从模仿网站的数量上即可见一斑,国内也已经冒出不少类似的网站。

如果您也想做digg的模仿网站,以上这些网站应该是不错的参考。
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