2009年4月9日星期四
Google App Engine 开始支持 Java
之所以称为 An Early Look 是因为对 Java 支持的开发还在进行中(原文: Our support for the Java language is still under development )。但这个 Early Look 还是足以满足广大开发者的好奇心了。
这个版本包括了 Googel 的 Java runtime、集成Google Web Toolkit、还有一个Eclipse插件。
更多信息可以参考 Google App Engine 英文站点
2009年3月7日星期六
goolge app engine 上传错误问题的解决办法
2009年3月4日星期三
推荐免费支持外链没有广告的图片存储服务 Pict.com
Pict.com FireFox 插件的特性
- 网站截图 (完整或选定区域)
- 将截图保存为 jpg/png 格式
- 自动上传截图
- 右键上传浏览器中的任何图片
- 生成图片链接
- 从本地上传图片等
2008年12月10日星期三
Yaml Builder 生成的 css 在Google Chrome 中无法正常显示的问题
试用Yaml Builder后发现,其生成的代码在Firefox、IE、和Opera下均能正常工作,但在Google Chrome下css不起作用。
Yaml Builder 生成的 css 如下:
@charset "UTF-8";
@media screen, projection
{
.....
最终找到问题所在,是【@charset "UTF-8";】 这句代码导致 Google Chrome 无法显示 css 样式,把这句删除之后就可以正常显示了。
【@charset "UTF-8";】made CSS not display correctly in Google Chrome, so remove 【@charset "UTF-8";】to solve this problem.
2008年10月15日星期三
c# 根据URL定位InternetCache中文件的位置
前段时间用 c# 写一个小程序时,使用如下代码获取指定URL文件缓存在本地文件系统中的临时文件的路径。
[DllImport("Wininet.dll", SetLastError = true, CharSet = CharSet.Auto)]
public static extern Boolean GetUrlCacheEntryInfo(String lpxaUrlName, IntPtr lpCacheEntryInfo, ref int lpdwCacheEntryInfoBufferSize);
const int ERROR_FILE_NOT_FOUND = 0x2;
struct LPINTERNET_CACHE_ENTRY_INFO
{
public int dwStructSize;
IntPtr lpszSourceUrlName;
public IntPtr lpszLocalFileName;
int CacheEntryType;
int dwUseCount;
int dwHitRate;
int dwSizeLow;
int dwSizeHigh;
FILETIME LastModifiedTime;
FILETIME Expiretime;
FILETIME LastAccessTime;
FILETIME LastSyncTime;
IntPtr lpHeaderInfo;
int dwheaderInfoSize;
IntPtr lpszFileExtension;
int dwEemptDelta;
}
// 返回 指定URL文件的缓存在本地文件系统中的路径
private string GetPathForCachedFile(string fileUrl)
{
int cacheEntryInfoBufferSize = 0;
IntPtr cacheEntryInfoBuffer = IntPtr.Zero;
int lastError; Boolean result;
try
{
result = GetUrlCacheEntryInfo(fileUrl, IntPtr.Zero, ref cacheEntryInfoBufferSize);
lastError = Marshal.GetLastWin32Error();
if (result == false)
{
if (lastError == ERROR_FILE_NOT_FOUND) return null;
}
cacheEntryInfoBuffer = Marshal.AllocHGlobal(cacheEntryInfoBufferSize);
result = GetUrlCacheEntryInfo(fileUrl, cacheEntryInfoBuffer, ref cacheEntryInfoBufferSize);
lastError = Marshal.GetLastWin32Error();
if (result == true)
{
Object strObj = Marshal.PtrToStructure(cacheEntryInfoBuffer, typeof(LPINTERNET_CACHE_ENTRY_INFO));
LPINTERNET_CACHE_ENTRY_INFO internetCacheEntry = (LPINTERNET_CACHE_ENTRY_INFO)strObj;
String localFileName = Marshal.PtrToStringAuto(internetCacheEntry.lpszLocalFileName); return localFileName;
}
else return null;// file not found
}
finally
{
if (!cacheEntryInfoBuffer.Equals(IntPtr.Zero)) Marshal.FreeHGlobal(cacheEntryInfoBuffer);
}
}
2008年8月6日星期三
co.cc 难道又被封了?
CO.CC 提供免费二级域名注册,没有广告,支持隐藏或不隐藏原URL转发。提供完全DNS解析功能,可以修改DNS、设置A记录、CNAME记录、NS记录以及MX记录,还完全支持Google Apps企业邮局。如果给封了那实在是太可惜了,再说没几天就开奥运了,cnn都解封了,怎么能现在封co.cc呢?要封也应该等到国外的朋友们都走了不是吗?
2008年8月4日星期一
编程方式更改Tor身份——Switch TOR to a new identity
在程序中使用Tor 的一个关键问题就是如何在程序中强制Tor 使用新的身份(切换代理),如果不能在程序中更换身份那使用Tor 的意义也就不大了。
Tor 默认HTTP代理端口是8118,Socket代理端口是9050,控制端口是9051。我们可以通过向Tor 控制端口发送命令来强制Tor 使用新的身份。
下面有三段代码,分别由shell、php和c#实现切换Tor 使用新的身份。
shell代码片段:
spawn telnet 127.0.0.1 9051
expect "Escape character is'^]'."
send "AUTHENTICATE\r"
expect "250 OK"
send "signal NEWNYM\r"
expect "250 OK"
send "quit\r"
php版本:
/** * Switch Tor to a new identity. **/
function tor_new_identity($tor_ip='127.0.0.1', $control_port='9051', $auth_code='')
{
$fp = fsockopen($tor_ip, $control_port, $errno, $errstr, 30);
if (!$fp) return false; //can't connect to the control port
fputs($fp, "AUTHENTICATE $auth_code\r\n");
$response = fread($fp, 1024);
list($code, $text) = explode(' ', $response, 2);
if ($code != '250')
return false; //authentication failed
//send the request to for new identity
fputs($fp, "signal NEWNYM\r\n");
$response = fread($fp, 1024);
list($code, $text) = explode(' ', $response, 2);
if ($code != '250') return false; //signal failed
fclose($fp); return true;
}
?>
c#版本代码片段:
TcpClient client = new TcpClient();
client.Connect("127.0.0.1", Convert.ToInt32(9051));
NetworkStream stream = client.GetStream();
byte[] cmd = null;
string strCmd = string.Format("AUTHENTICATE \"{0}\"\r\n",password);
cmd = System.Text.Encoding.Default.GetBytes(strCmd);
stream.Write(cmd, 0, cmd.Length);
byte[] buffer = new byte[2];
int count = 0;
string strResponse = "";
count = stream.Read(buffer, 0, buffer.Length);
strResponse += System.Text.Encoding.Default.GetString(buffer, 0, count);
while (count != 0 && stream.DataAvailable)
{
count = stream.Read(buffer, 0, buffer.Length);
strResponse += System.Text.Encoding.Default.GetString(buffer, 0, count);
if (count < buffer.Length)
break;
}
if (strResponse.IndexOf("250") == -1)
{
MessageBox.Show("AUTHENTICATE Fail!");
return;
}
buffer = new byte[1024];
strCmd = "signal NEWNYM\r\n";
cmd = System.Text.Encoding.Default.GetBytes(strCmd);
stream.Write(cmd, 0, cmd.Length);
strResponse = "";
count = stream.Read(buffer, 0, buffer.Length);
strResponse += System.Text.Encoding.Default.GetString(buffer, 0, count);
while (count != 0 && stream.DataAvailable)
{
count = stream.Read(buffer, 0, buffer.Length);
strResponse += System.Text.Encoding.Default.GetString(buffer, 0, count);
if (count < buffer.Length)
break;
}
if (strResponse.IndexOf("250") == 1)
MessageBox.Show("Switch Identity OK!");
参考文章地址:
http:// linux.chinaunix.net/bbs/thread-1014409-1-1.html
http:// w-shadow.com/blog/2008/06/20/tor-how-to-new-identity-with-php
http:// www.cnblogs.com/sxlfybb/archive/2008/07/07/1237662.html
2008年8月3日星期日
C#修改IE配置 禁止IE显示图片 禁止IE显示Flash
禁止IE显示图片,如果手动修改的话应该是取消选中 工具 -> Internet 选项 -> 高级 -> 显示图片 -> 多媒体 -> 显示图片 就可以了。
在程序中,只能通过修改注册表来实现。C# 示例代码如下:
RegistryKey regKey = Registry.CurrentUser;
string SubKeyPath = @"Software\Microsoft\Internet Explorer\Main";
RegistryKey optionKey = regKey.OpenSubKey(SubKeyPath, true);
optionKey.SetValue("Display Inline Images", "no");
禁止IE显示Flash,手动方法除了借助一些第三方工具外我还没有找到合适的方法(取消选中 工具 -> Internet 选项 -> 高级 -> 显示图片 -> 多媒体 -> 在网页中播放动画 没有效果,也许这里的动画只的不是Flash)。
一番google之后,最终的解决方案还是修改注册表,这次修改HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\ActiveX Compatibility\{D27CDB6E-AE6D-11CF-96B8-444553540000}
将其中 "Compatibility Flags" 的数值数据设为 十六进制的400也就是十进制的1024 就可以禁止IE显示Flash了。
如果注册表中没有这个Key,那么需要在
HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\ActiveX Compatibility 下新建一个以 {D27CDB6E-AE6D-11CF-96B8-444553540000} 为名称的键(Key),然后再为其创建一个名称为 Compatibility Flags 的 DWORD 值,其数值数据 0 表示允许Flash,400(十六进制)表示禁止IE显示Flash。
代码与前者的不同仅在于赋值时需要指定类型RegistryValueKind.DWord,如下所示:
optionKey.SetValue("Compatibility Flags", 1024, RegistryValueKind.DWord);
2008年8月1日星期五
Myhpf 付费搜索,为你的网费买单
Myhpf 是一家英国公司,提供付费搜索。简单说就是你用Myhpf搜索,他支付你佣金。由于Myhpf 与著名搜索引擎呀虎(yahoo)合作,所以他的搜索结果还是比较令人满意的。你完全可以用它代替你常用的搜索引擎,而且每使用一次Myhpf搜索,它将给你0.01英镑(左右)作为佣金。每天搜索次数没有限制(建议用英文做关键词来搜索),但不要为了佣金作弊,否则得不到支付。注册之后你将会拥有一个可定制的主页,通过这个页面进行的搜索Myhpf 都将支付你佣金,你不需要安装任何浏览器插件。当然,如果你不想每次搜索都打开这个页面,Myhpf 还为你提供了浏览器插件,安装使用都非常简单。(浏览器插件如下图所示)

注册地址:点击这里注册
ps:其实只要你稍微改变一下搜索习惯,就可以让Myhpf 来给你的网费买单。你也可以把他当作一个网赚的项目来做,但不要太过,否则会被视为作弊。
2008年7月31日星期四
优秀开源项目视频教程 —— Gmip 视频教程
"优秀开源项目视频教程"作为一个系列,每篇日志介绍一个优秀开源软件相关是视频教程。
优秀开源项目视频教程 —— Gmip视频教程
在这篇日志中我将介绍10个视频教程,他们将帮助你快速了解和熟悉Gmip的使用。Gimp 是一款著名的跨平台开源图形编辑器。它有许多功能,即可以作为简单的画图程序,也能作为专家级的照片处理程序。完成多种图像处理方面的要求,如图片润饰、图像合成、在线批处理、大批量图像渲,以及图像格式转换等。

GMIP 视频教程有:
Pop Art - 这段教程展示如何将一张普通的图片转变为艺术作品的效果。
Gmip用户界面 - 这段视频教程将给你Gmip用户界面的基本概述。
如何修改人物头发颜色 - 这段Gmip视频教程介绍如何修改照片中人物头发的颜色。
用Gimp制作素描效果 - 这段教程介绍如何照片制作成素描的基本方法。
透明文字效果 - 透明文字效果是制作 Web 2.o 网站和网站header和banner必要的效果之一,这个教程将介绍制作方法。
使用Neutral Density Filter - 中性密度滤光片(Neutral Density Filters)是摄影是常用的工具,这个教程介绍如何使用Gimp制作与照片相同的效果。
使用Gimp制作耀斑效果 - 照片中的耀斑通常是比较烦人的,但如果处理得当会有出乎意料的效果,这个教程帮助你掌握使用Gimp制作耀斑的效果。
制作水滴 - 我们经常可以看到在图片中的片叶子或花上有一滴晶莹剔透的水滴,要制作这种效果需要一些技巧,这个教程就将介绍如何制作逼真的水滴。
使用Gimp制作Web 2.o Logo - 如果你正需要制作一个Web 2.0 Logo,那么这个视频就是为你准备的。
为Web准备图片 - 这个教程是一个系列教程中的第一个,覆盖了旋转、剪切、上色等内容。
更多视频教程可以在 video.google.com 和 metacafe.com 等网站找到。
2008年7月30日星期三
CCTV 网络电视奥运台开播
CCTV 网络奥运电台网站页面设计简洁大方,页面正中像是一堵由栏目组成的电视墙,呈圆环状排列,点击进入相应栏目。视频速度比较理想画质也不错,但使用firefox打开页面显示不正常(没有兼顾多种浏览器这点让人非常遗憾)。
可以看到网站设计引入了SNS标志性的空间、好友、圈子、游戏、地图等互动与特色栏目。用户无需注册即可进入网站,也可以使用MSN帐号登录或者注册CCTV通行证。用户在观看奥运节目的同时可以和一同观看的网友讨论交流。
CCTV网络电视奥运台作为CCTV推出的新传媒传播平台,将为用户提供奥运会期间总计三千八百小时的赛事直播和奥运历史节目,总量将超过四千小时。节目分类清晰,除开闭幕式、28个大项专题还有荣誉殿堂,名将之约,巅峰时刻,奥运历史和费德勒、姚明、郭晶晶等名运动员专题。今天还看到了网上泄露出来的开幕式视频片段,虽然只有两分中左右但很精彩,期待8月8日的到来、祝愿奥运顺利召开。
网站地址: http://www.cctvolympics.com/
2008年7月29日星期二
6款优秀的免费软件
Launchy 2.0 —— launchy不仅可以快速启动(索引)你开始菜单中的程序,还可以打开你的文档、工程文件、文件夹和书签。一旦你开始使用launchy,你可能会很快忘记开始菜单、桌面图标,因为launchy用起来真的非常方便。
OneClick Cleaner —— 是一款免费的磁盘清理工具。它会扫描并清除您计算机上的垃圾文件并且安装和卸载都非常方便。
Kampachi —— 是一款下载工具。使用它,可以方便的从打开indexes选项的apache服务器上下载文件夹或文件。
RAMBooster 2 —— 监视内存和CPU的使用。它有助于您的电脑更快、更流畅的运行,有效减少电脑重启次数。它支持的高达9999MB的内存。
TyphoonPassword —— 免费的密码管理工具。它支持所有浏览器,安全保管你的密码。
Orca —— 是一个基于Firefox 3设计的浏览器。支持大概20种语言,并且拥有广告拦截、代理服务器、表单自动填写、鼠标手势等优秀功能。据说他的速度比Firefox和Opera都快。
2008年7月28日星期一
blog 访客工具(一)
随着使用博客的人越来越多,针对博客的各种工具和服务业也越来越多,其中不乏精品。在这篇日志中我将介绍几个访客工具。
NiftyMaps,提供实时访客地图服务,根据你选择的地图背景样式,访问者图标会为你自动生成一段HTML代码,由于生成代码不是javascript代码,所以你可以将这段代码复制到日志中,在你的日志中生成实时的访客地图。此外,NiftyMaps 网站上写到提供的访客地图可以精确到街道的级别(Track your visitors'locations. Zoom down to the street level!)网站地址:NiftyMaps
maps.amung.us 是由实时访问统计服务 whos.amung.us 推出的一款实时访客地图服务,通过添加一段javascript代码,在自已的Blog上挂上一个可显示访问来源世界地图,你可以轻松知道当前页面的访客来自世界上的哪个地方。它提供了两种大小的地图尺寸,并提供多种地图样式、来源点样式及颜色等可自定义项,以便附合你的Blog风格。网站地址:maps.amung.us
FeedJIT 提供两大类服务,实时访客展示(show off your live traffic)和引导用户到你最好的内容(guide visitors to your best content)。实时访客展示,又分访客地图(其效果不如上面两个)和访客来源两部分,内容引导包括访问该页面的访客还访问了那些页面(visitors to this page also liked)和当日的热门页面(popular pages today)两部分。FeedJIT 以javascript代码的方式安装,它提供的内容引导工具非常使用。网站地址:FeedJIT
webtomail 通过邮件浏览网页

现在有好多公司在工作时间为了提高员工的工作效率,采取了封网措施。但是,封网不一定就会提高工作效率,特别是在我们已经习惯了网络的情况下,有事儿没事google或baidu一下,离开网络很不习惯。
如果你也正在为上班时无法浏览网页而苦恼,而且公司邮箱没有封(一般公司都有自己的企业邮局且不会封) 那就来试试 WebToMail 提供的免费服务吧。只要你可以收发邮件,剩下的事情就都交给 WebToMail 来做。
WebToMail 使用非常简单,首先发送一封邮件到send@webtomail.co.cc ,这封邮件的主题(Subject)用你希望浏览的页面的URL,然后就可以等着网页以邮件的方式发回来了。
最后,WebToMail 现在的速度不是很快需要耐心等一会,不过等一会儿总比没有强得多了。
2008年7月27日星期日
PhotoFunia 轻点鼠标生成你自己的个性图片
不会ps又想拥有个性图片怎么办?找朋友帮忙还是花钱找人制作?现在都不需要了,PhotoFunia 为你提供了免费的在线图片特效编辑功能。你要做的现在只剩下上传一张待修改的图片,然后轻松点击鼠标,几十种特效任你选。
废话不说,上几张图片看看效果:先看原始图片
下面是生成的效果: 
还有几十种其他效果,很有意思。
2008年7月26日星期六
博客免费备份工具
对于一个博客站点而言,需要经常备份的数据包括数据库、模板、插件、配置等等。备份周期可以根据自己的情况而定。如果你的博客更新很快,那么你备份的周期也要尽量缩短。
现在有很多方便的博客备份服务,可以大大简化你手动备份的工作。BlogBackupr 就是一个很好的在线备份工具。用户只需提供Blog地址后就可自动帮你抓取Blog文章,并定期备份,而且完全支持中文。2008年7月25日星期五
8个免费临时邮箱
10 Minute Mail 无需注册,临时邮件地址10分钟内有效,邮件单独显示,有中文界面,邮件单独显示。
GuerrillaMail 无需注册,邮件地址15分钟内有效,可延长1小时,邮件单独显示,可回复邮件。
Disposable-Email 无需注册,临时邮件地址15分钟内有效,邮件单独显示。15分钟过后可以继续延长时间。
NowMyMail 无须注册,临时邮件地址1小时内有效。进入网站点击右上角“Click here to get your disposable email”按钮就能随机得到一个临时性免费邮箱地址。
mint-email 无需注册,临时邮件地址4小时内有效,邮件单独显示。
tempinbox 无需注册,直接使用,但要记得删除邮箱中的邮件,否则它将会留在收件信箱内,其他人就会有可能看到你的邮件。
spanbog 免费临时邮箱,未读的信件保留四天、已读的信件保留两天,而Mail地址将会保留三个月,网站还提供RSS功能,让你可以随时知道是否有新的邮件。(这个网站广告有点儿多........)Spam.la 无需注册,所有的邮件都会显示在首页,尽可能不要让邮件内出现你的帐号密码等重要信息,以免被窃取。
2008年7月24日星期四
rarhost 免费rar文件存储

host 提供针对 .rar文件的免费存储、共享服务。(空间只允许.rar文件上传)
空间特点:
- 无限量空间
- 单个文件大小限制在150mb
- 30天没有被下载的文件将被删除
- 用户使用无需注册即可使用
- 注册用户可以管理上传的文件,并拥有双倍文件保存时间(60天)
2008年7月20日星期日
FileQube 支持外链的免费网络硬盘

FileQube提供2G的免费网络存储空间,支持外链,但流量限制仅有 256M。FileQube的上传、下载速度都还不错。
注册用户单个文件限制500M以内,支持RSS订阅输出,可以用Widget方式嵌入到你的网站、博客中。你上传的文件可也以完全共享或加密码。非注册用户仅可上传单个150M以内的文件。
网址:http://www.fileqube.com