<![CDATA[HOUKAI]]> http://www.houkai.com/ 着眼小技巧,记录技术点滴(记录-收藏-共享) 2010-06-24T10:15:05Z hikehk http://www.houkai.com/entry/lepu-gift <![CDATA[收到乐铺的礼物了——德国赛夫曼便捷锁-蓝]]> 之前好像是在老七的博客看到乐铺搞活动,就去报名参加了,后收到博客认证通过的邮件,再后来收到一封参加资格的邮件,具体名单,我排33。呵呵,那就不客气了,挑选了如下物品:


德国赛夫曼便捷锁-蓝

等待大概3日,收到发货短信(22日18:30),24日早上10点物品到手。一个锁、两把钥匙,实物图如下(用手机拍的):

货真价实,我特意在淘宝查了一下价格170元,乐铺价格168元。我也是本着实用主义选择这款产品的,此锁只要能找出捆绑点就可以上锁。而且很轻便,据观察参与捆绑受力的部分是合金做的,应该很结实。看来,以后出门旅行出差等必带了。

此产品的设计确实有独到之处,此锁的原理是:上面的钢丝缠绕固定在一根中柱上,此中柱和底部黑色部分的托盘内的金属卡锁相连,托盘上有两对4个孔,锁的时候将钢丝随便插入一对孔内,之后钢丝只能进不能出,关键是无论从那个孔进入都是这样(说明上锁和方向没有绝对的关系)。每一对孔内只有一个卡点,大家可以考虑一下这是怎么实现的。

最后,感谢乐铺搞的这次活动,希望能再多加点创意性的产品(产品还是有点少)。

相关阅读:

本文网址:http://www.houkai.com/2010/06/24/lepu-gift.html

]]>
None 2010-06-24T10:15:05Z
http://www.houkai.com/entry/appengine-https-novisit <![CDATA[appengine无法部署的问题]]> appengine_lowres[1]2010.6.13号左右 https://appengine.google.com/  被墙了,而http://appengine.google.com/ 还是可以访问,也可以ping通,只是用Google账户登录后,为了安全会自动从http跳转到https,导致gae无法在后台管理了。

解决在浏览器中访问appengine的问题还是比较简单的,大家可以发挥各自的穿-墙技术。vpn、ssh、其他各种翻-墙软件等等。我推荐最新版的自---由---门---7.00专业版。

现在,最大的问题就是使用Google App Engine Launcher无法上传gae程序了,如果此软件支持代理那也好办,所以我已在http://code.google.com/p/googleappengine/ 留言希望下个版本直接支持代理,大家有空也可以呼吁一下。

除了使用上面的软件部署外,之前我们一般使用appcfg.py update ../micolog 命令上传,原来的micolog目录下有update.bat这个批处理文件来调用上面的命令方便大家上传。现在修改为下面的命令,使用http协议而不使用https协议进行上传。

appcfg.py --insecure update ../micolog

--insecure 表示使用http和服务器通讯,默认的是https  via

以上解决了这次gae无法上传的危机。

探索与思考

除了上面的方法,或许下面的方法可能会解决http和https的appengine.google.com同时被墙的情况下无法上传gae程序的问题。

1.使用可以翻--墙的vpn,如果你有的话,此方法应该是最方便的方法了。

2.Google App Engine Launcher
+ProxyCap  或 FreeCap   或 SocksCap
+ 自—由---门(或其他代理)

此方法是强制launcher使用代理127-0-0-1:8580上传。相关的一些软件和文章:

FreeCap v3.18 http://www.crsky.com/soft/6796.html
SocksCap代理使用教程 http://www.williamlong.info/archives/2024.html
http://www.youngzsoft.com/cn/sockscap/
SocksCap32 v2.40  http://www.crsky.com/soft/1533.html

我的电脑是64bit windows7有软件不兼容问题,所以没有经过详细测试,大家不妨试试。

3.如果cmd下能设置上传代理,那用命令上传不也可以。+ 自—由---门(或其他代理)

从Google code的两篇文章(文章1 and 文章2)中的说明得到windows的cmd或者批处理文件中可以这样:

set http_proxy=http://127-----0-----0-----1:8580
set https_proxy=https://127----0-----0-----1:8580
appcfg.py update ../micolog

如果代理需要账户秘密可以再加这两句

SET HTTP_proxy_user=<votre nom d'utilisateur>
SET HTTP_proxy_pass=<votre mot de passe>

经我测试未能成功,反正是一种思路所以保留在这,大家不妨再探索探索。与此相关的两篇 via1 via2

ps:为了防止搜索引擎对某些敏感关键词检索,使用了一点点小小的干扰手段,请大家阅读时自行辨认。

(完)

相关阅读:

本文网址:http://www.houkai.com/2010/06/19/appengine-https-novisit.html

]]>
None 2010-06-19T09:33:32Z
http://www.houkai.com/entry/lui-ke-ya-gangganjieli <![CDATA[精彩的创业策略视频]]> 无意中看的的视频,看了可能让你很想创业。视频中交给了你一种思维,我觉得这个很重要。

杠杆借力——将让你白手起家,在最短的时间内,创建自己的企业!
杠杆借力——将让你零成本零风险,快速获得你想要的一切客户!
杠杆借力——将让你不投入一分钱,瞬间占领新的市场,彻底摧毁你的竞争对手!
总之,杠杆借力,将让你轻而易举地,得到你想要的一切!

视频为刘克亚在上海的一场3小时演讲的视频片段,

观看后有可能当晚失眠(有统计6%),所以,建议你不要在睡觉前观看。

 

 

如果56太慢可以观看优酷的

 

相关阅读:

本文网址:http://www.houkai.com/2010/06/7/lui-ke-ya-gangganjieli.html

]]>
None 2010-06-07T07:36:23Z
http://www.houkai.com/entry/micolog-random-posts-widget <![CDATA[random posts widget for micolog 详细使用说明]]> 随机文章(random posts widget)插件 1.2

This simple plugin is a widget that displays a list of random posts on your widgetized sidebar.

random posts widget 是一个显示micolog 随机文章的小插件,可以随机显示几篇文章在您博客的侧边栏上。
这种小功能在给读者多了一些阅读选择的同时,也为您的博客带来了意外的流量。

下载:micolog.xuming.net  或者 micolog.appspot.com

侧边栏上的随机文章

micolog侧边栏上的随机文章

插件后台

random posts widget for micolog插件后台

手气不错:点击链接后 随机的找出一篇文章进行展示。

效果如 异次元 的手气不错。

random posts widget for micolog手气不错

 

本插件基于micolog0.7rc2制作

random posts widget插件使用方法:

1. 解压缩,把randomPostsWidget.py复制至micolog\plugins

2. 在主题themes\xxxx\templates的sidebar.html文件中相应位置加入

<div class="block" id="random_posts_widget" style="display: none;">
<h2>随机文章</h2>
<ul>
{%mf random_posts_widget%}{%endmf%}
</ul>
</div>

注:class可以根据你主题的风格做相应的修改。

3.手气不错功能的添加:
  复制random.html到micolog\views 目录
  在base.html文件menu中相应位置加入如下标签,以xuming主题为例在 
<ul id="home" class="gc-topnav-tabs"></ul>里加入

  <li>{%mf random_link%}{%endmf%}</li>

4. 在插件管理界面里激活 random posts widget 插件

相关参数说明:

1.random posts counts 显示随机文章数

2.{%mf random_posts_widget%}{%endmf%}的内容为
N(random posts counts)个下面标签集合以及控制插件显示隐藏的js代码:

<li><a href="相对URL">文章标题</a></li>

3.{%mf random_link%}{%endmf%}内容为:

<a title="随便找一篇文章给我看看吧!" rel="nofollow" href="/e/random">手气不错</a>

________________________________________________________________

V1.0    完成随机显示几篇文章在您博客的侧边栏上的基本功能。
V1.1    在1.0的基础上 增加了插件取消激活后,整个随机文章widget消失,启用则自动显示的功能。
v1.2    在1.1基础上 增加“手气不错”功能。

————————————————————————————————
感谢严鹏taogogo对制作本插件的帮助。

相关阅读:

本文网址:http://www.houkai.com/2010/06/3/micolog-random-posts-widget.html

]]>
None 2010-06-03T05:13:58Z
http://www.houkai.com/entry/micolog-prxoy <![CDATA[micolog反向代理的观察与思考]]> 在Google app engine上个人搭建的反向代理 可以分为两种:

第一种

是直接用自己的域名反向代理*.appspot.com,这种不需要用Google企业套件绑定到ghs也可以访问,而且可以用根域名代理,我就是用这种,用www.houkai.com和houkai.com代理了hou-kai.appspot.com。
缺点是,登陆后台管理经常Google账户认证后会跳转到appspot,比如www.houkai.com/adimin登陆后会自动跳转hou-kai.appspot.com/admin。因为实际你是通过appspot登陆的,Google为了防止网址欺骗 还原到了真实的地址。这样代理的只是相对路径对起作用,对绝对路径无效。相当于给appspot重新给了一个可以进入国内的入口,只不过是换了个马甲。

这种方式的优点,只要国内可以访问到appspot,也可以用在国内搭建反向代理。

如果想用这种代理方式,而且想用自己的域名管理怎么办呢?加之appspot.com如果在国内无法访问。

以我的域名为例:先将www.houkai.com  和 blog.houkai.com 用Google企业套件绑定到hou-kai.appspot.com.再用国外的反向代理服务器 用www.houkai.com代理blog.houkai.com  这样前端是www后台管理是blog.houkai.com/admin,不过要翻墙管理。这样与appspot无关了,可以把appspot 301 www了。

前段时间 我用filckr相册做博客图片,许多童鞋说看不到图片,后来我调查了一下,我并没有修改hosts文件,原因是我使用的dns是Google的8.8.4.4和8.8.8.8。所以我这里一直可以访问appspot和flickr。后来我换了学校的dns发现appspot和flickr就挂掉了。

如果哪位童鞋还想用flickr做图床,可以使用ip地址的链接。比如这张图,以前童鞋说打不开的,现在求证一下

地址为http://76.13.18.79/4048/4618274953_8f3bd91f94_o.png   下面能否看到?

第二种

是你的域名在Google企业套件里绑定过,也就是说直接使用ghs.google.com是没问题的。总所周知的原因使域名连不到ghs了。,这里我们使用个人反向代理的作用是将你的域名推送给ghs.google.com(或者ip)。让它可以找到ghs。第一种反向代理是对appspot二级域名网站的代理,而第二种是对ghs的代理。也就是说相当于使用域名移到国外访问ghs,或者将ghs拉近国内一样,让域名和ghs之间正常的互通。这样做的反向代理和直接使用ghs区别不大,可以使用诸如www.houkai.com/adimin的网址来管理micolog后台。缺点这种代理国内不能搭建。

例如 这个代理mail.8gdns.com 感觉和ghs没什么区别。

欢迎讨论。如理解错误欢迎指出。

对了,经taogogo推荐 搭建了个免费的图床,img1.houkai.com 欢迎围观,德国免费php空间,有广告 对图床来说无所谓,速度还行,前几篇文章用的就是这个图床。程序和zhukun的一样是MG2(不使用MySQL数据库)上面的e文警告我本地测试是没有的,不影响使用。前段时间买了个域名这里做个反向 med315

相关阅读:

本文网址:http://www.houkai.com/2010/05/29/micolog-prxoy.html

]]>
None 2010-05-29T14:31:57Z
http://www.houkai.com/entry/micolog-redirect-301 <![CDATA[话说micolog 301 网址重定向]]>

问题1:

话说去年的好多文章被伟大的G.F.W阻挡之国门外,导致访问ip迅速下降。幸好只屏蔽了部分网址,没用k掉域名,这要感谢我们伟大自由的祖国。

应对:更改被墙文章网址,并301到新网址。以对搜索引擎转移文章权重。

搭建micolog这篇文章为例。这篇文章据我判断当时被墙时属于连带,“不安全”的文章我已经“主动”删除了!

被墙的网址是:http://www.houkai.com/?p=3003  (请勿访问,会导致本博客几十秒内无法访问)

修改后的网址是 http://www.houkai.com/2009/06/18/gae-micolog.html 

下面将前者301到后者。

在blog.py里class SinglePost(BasePublicPage)类中 def get(self,slug=None,postid=None)方法下 添加如下代码:

if self.request.headers["Host"] =='www.houkai.com' and postid ==3003:
    self.redirect("http://www.houkai.com/2009/06/18/gae-micolog.html")
    return self.response.set_status(301)

另外:被墙的 http://www.houkai.com/soft 301到 http://www.houkai.com/share 代码如下:

if self.request.headers["Host"] =='www.houkai.com' and slug =='soft':
    self.redirect("http://www.houkai.com/share")
    return self.response.set_status(301)

也可以这样if postid ==3003: 和 if slug =='soft':  测试时,可以用个小点postid值。

问题2:

话说 去年用了kangzj的独立ip的反向代理之后,众多童鞋以为这是ghs,纷纷cname或A记录到本博客的ip,造成了一网站多域名的情况,当时反向链接迅速下降,幸好我在每篇日志的最后都附上了绝对链接地址,从而搜索引擎将其他网站内容判断为副本,慢慢的 反向链接数量上来了。但这样,还会对本博客博文的权重降低,所以今日决定将其他网址301到本域名

方法:来源于Qing的这篇文章

1.首页转向。在blog.py文件class MainPage的get方法 添加如下(红色部分)

class MainPage(BasePublicPage):

    def get(self,page=0):

        if self.request.headers["Host"] != 'www.houkai.com': 
           self.redirect(http://www.houkai.com/)
           return self.response.set_status(301)

2.页面和文章转向。在blog.py文件class SinglePost的get方法 添加如下(红色部分)放404前。

class SinglePost(BasePublicPage):
    @cache()
    def get(self,slug=None,postid=None):

        if postid:
            entries = Entry.all().filter("published =", True).filter('post_id =', postid).fetch(1)
        else:
            slug=urldecode(slug)
            entries = Entry.all().filter("published =", True).filter('link =', slug).fetch(1)

        if postid ==3003:
            self.redirect("http://www.houkai.com/2009/06/18/gae-micolog.html")
            return self.response.set_status(301)

        if slug =='soft':
            self.redirect("http://www.houkai.com/share")
            return self.response.set_status(301)

        if self.request.headers["Host"] != 'www.houkai.com':
            if postid:
               self.redirect("http://www.houkai.com/?p="+str(postid))
            else:
               self.redirect("http://www.houkai.com/"+slug)
            return self.response.set_status(301)

        if not entries or len(entries) == 0:
            return self.error(404)

以上也可以用self.redirect("……..", True) 一个函数代替self.redirect("…….."+slug) 和self.response.set_status(301)两个函数。

建议用notepad++显示空格和制表符进行编辑。注意:网址加了http://。测试时可先将1中的代码注释掉,上传别忘了改回来。也可以加 != 'localhost:8080' 或者 127.0.0.1:8080 把这两个本地地址排除掉。还有return不能省略,省略后虽然本地没问题,但上传后页面打算速度非常的慢。

如果你用Google的ghs,以上方法就可以了。如果你用个人的反向代理 使用你的域名代理了*.appspot.com 那么上面还要加上相应的网址。以保证youID.appspot.com可以正常访问。但这样做就不能解决问题2了,因为其他域名通过你的独立ip进而通过youID.appspot.com来访问的。所以我会临时将域名指向一个类似Google ghs的反向代理(mail.8gdns.com)。哦,别忘了先关掉启用缓存。过几天搜索引擎应该就你的301了,再启用缓存并把这部分代码注释掉。下篇博文将讨论两种方向代理的方式。

如果只需要自己的域名和appspot的话可以这样,比如我的改为:

if self.request.headers["Host"] != 'www.houkai.com' and self.request.headers["Host"] != 'hou-kai.appspot.com' and self.request.headers["Host"] !='localhost:8080' :

我用的是micolog 0.5版,没有研究新版本,有能力的可以写个插件。

相关学习:http://code.google.com/intl/zh-CN/appengine/docs/python/tools/webapp/requesthandlerclass.html

相关阅读:

本文网址:http://www.houkai.com/2010/05/28/micolog-redirect-301.html

]]>
None 2010-05-28T07:40:47Z
http://www.houkai.com/entry/fireworks-transparent-png <![CDATA[Fireworks导出透明背景png图片的方法]]> 一、在fireworks的菜单-修改-画布-画布颜色 中将背景设置为透明。

如果直接利用菜单中导出图像png格式,恐怕默认是白色背景的图片。直接保存为png格式呢,虽然是透明的背景(用win7自带的图片查看器观看图片时边界没有黑框),但体积很大(最下面那张houkai图为303k),因为它夹带了涂层等信息。所以要生成体积小而且透明背景的png图片继续向下看。

二、在菜单-文件-图像预览中的选择png8格式,透明类型选择索引色透明或者Alpha透明度。如图:

fireworks 透明图制作

 
下面看看用Alpha透明度类型做的图,图像大小为37.9k,用索引色透明类型保存大小为40.8k。经测试,图片的颜色数较少的话,同一张图用索引色透明保存比alpha透明保存所占用的体积小。

当然这张图的颜色数太多了。

fireworks Alpha透明度类型做的图

本图只供测试用,别说我自恋哦

本文网址:http://www.houkai.com/2010/05/18/fireworks-transparent-png.html

]]>
None 2010-05-18T14:38:22Z
http://www.houkai.com/entry/ubuntu-install-desktop <![CDATA[Ubuntu Server安装图形界面全过程]]> 总觉得Ubuntu Server作的有点不尽人意,相比RHEL5,连个图形界面都没有,下面是从终端控制台走向图形化界面的过程。

以下在Ubuntu server 10.04测试完成。

1、连接网络,你一定要确保网络通畅,如果你和我一样使用Wireless,那先找根网线插上,因为下面的安装都要通过网络下载组件的。
2、进入图形界面的命令是startX,敲击后会有安装xinit的提示。

sudo apt-get install xinit 

安装完,终端由黑色界面变成白底黑字。出现X型的鼠标指针。

3、安装环境管理器

如果你喜欢 GNOME,使用sudo apt-get install gdm

KDE和Xface用户分别改为 KDM和XDM

我先安装了kde,后在kde的终端中安装了GNOME。两者也能很好的融合。

4、安装桌面环境

sudo apt-get install Ubuntu-desktop 或者 kubuntu-desktop  xubuntu-desktop

如果你只想装界面的核心环境,或者网速比较曼的话,可以

sudo apt-get install gnome-core  或者 kde-core xface4

5、如果你装的是CORE的,那么你还需要做以下的工作

1.安装新立得软件包管理器

sudo apt-get install gsynaptic

2.安装无线上网模块(如果需要)

sudo apt-get install network-manager*

3.安装中文支持(能够显示中文)

sudo apt-get install language-support-zh

4.从新立得软件包管理器中选择中文输入法支持和中文界面支持

5.使用新立得软件包管理器安装其他你想要的软件

6.重新启动,即可见图形登陆界面。

 

参考:http://www.linuxidc.com/Linux/2008-10/16743.htm

相关阅读:

本文网址:http://www.houkai.com/2010/05/5/ubuntu-install-desktop.html

]]>
None 2010-05-05T08:31:17Z
http://www.houkai.com/entry/Ubuntu-preferences <![CDATA[Ubuntu10.04窗口风格改为windows风格的方法(最小化、最大化、关闭按钮右对齐)]]> 今天安装了Ubuntu 10.04,默认风格是苹果的样子。还是不习惯,那就简单的改造一番吧。

1.修改Ubuntu系统菜单栏下停靠在下方,也就是将类似任务栏(桌面下方一个真正的任务栏,打开的程序窗口会在这里停放)从屏幕上方放到下方。

在任务栏右键菜单中选择properties,在papnel properties窗口中将 orientation 由top改为bottom。

修改Ubuntu系统菜单下对齐

2.在窗口任务栏(标题栏)增加系统菜单,并将最小化、最大化、关闭按钮以此顺序放置到右边。

打开终端(Terminal)输入gconf-editor,打开“/apps/metacity/general”,把button_layout项的值改回 "menu:minimize,maximize,close"保存即可。

修改Ubuntu最小化、最大化、关闭按钮右对齐

如有名词叫错 请大家更正。好好体验一下今天发布Ubuntu 10.04正式版吧。

相关阅读:

本文网址:http://www.houkai.com/2010/04/30/Ubuntu-preferences.html

]]>
None 2010-04-30T09:22:30Z
http://www.houkai.com/entry/ <![CDATA[在网页中直接运行html、js代码的代码]]> 此代码框可以用来演示html或js代码。

 

在下面的文本框上写上html或js代码,按代码运行即可欣赏你的大作。


代码如下:

<p>
<textarea name="p" cols="75" rows="15" id="p" onFocus="this.select()"> 
可以将演示代码放在此处-------*
</textarea>
<br>
<input name="button" type=button onclick=runcode() value="代码运行">
<script>
function runcode()
{
code=p.value;
a=window.open()
a.opener=null
a.document.write(code)
a.document.close()
}
</script>
</p>

*注意:

此处粘贴的代码要将<替换成&lt;

将>替换成&gt;

比如<p>就成了 &lt;p&gt;

本页演示在IE和chrome下ok。在火狐下不起作用,但将上面框中的代码另存为htm在火狐下测试并没有问题。

下面代码在IE、chrome、火狐下测试均可。

<P align=left><TEXTAREA class=fm id=code rows=12 cols=78>
可以将演示代码放在此处-------*
</TEXTAREA></P>
<script src="action.js" type="text/javascript" language="javascript"></script>
<INPUT style="CURSOR: hand" onfocus=this.blur() onclick="runEx('code')" type=button value=运行代码> <INPUT style="WIDTH: 95px; CURSOR: hand" onfocus=this.blur() onclick=cycode(code) type=button class="ubbbutton" value=复制到剪贴板 name=Submit> <INPUT style="CURSOR: hand" onfocus=this.blur() class="ubbbutton" onclick=svcode(code) type=button value=另存代码> [Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]<br /><p>

 

//action.js 代码如下:

//运行代码
function runEx(cod1)  {
     cod=document.getElementById(cod1)
      var code=cod.value;
      if (code!=""){
          var newwin=window.open('','',''); 
          newwin.opener = null
          newwin.document.write(code); 
          newwin.document.close();
    }
}
//复制代码
function doCopy(ID) {
    if (document.all){
         textRange = document.getElementById(ID).createTextRange();
         textRange.execCommand("Copy");
         window.status=("HouKai提示,代码复制成功!");
    }
    else{
         alert("此功能只能在IE上有效")
    }
}

//复制文本域代码
function cycode(obj) {
    var rng = document.body.createTextRange();
    rng.moveToElementText(obj);
    rng.scrollIntoView();
    rng.select();
    rng.execCommand("Copy");
    window.status="高亮度包含的代码已被复制到剪贴板!"
    setTimeout("window.status=''",1800)
    rng.collapse(false);
}

//另存代码
function svcode(obj) {
    var winname = window.open('', '_blank', 'top=10000');
    winname.document.open('text/html', 'replace');
    winname.document.writeln(obj.value);
    winname.document.execCommand('saveas','','houkai.htm');
    winname.close();
}

复制功能只IE下有效。

相关阅读:

本文网址:http://www.houkai.com/?p=369004

]]>
None 2010-04-15T10:17:55Z