文章
Ubuntu 下利用 expect 脚本自动登录 ssh 作代理
这类文章网上已经有很多了,实在不想再重复,可惜一直没有一个双击就连上 ssh 的,要不写个 GUI?putty 很搞,还是弹出一个命令行出来填用户名密码,那我干脆直接在 terminal 搞定啦。 #!/usr/bin/expect -f #auto ssh login set timeout 20 spawn ssh login_name@host_name expect *password: send 123456\r interact 网上流传的大多都是上面一段代码,问题就在最后一句上面: …
这类文章网上已经有很多了,实在不想再重复,可惜一直没有一个双击就连上 ssh 的,要不写个 GUI?putty 很搞,还是弹出一个命令行出来填用户名密码,那我干脆直接在 terminal 搞定啦。 #!/usr/bin/expect -f #auto ssh login set timeout 20 spawn ssh login_name@host_name expect *password: send 123456\r interact 网上流传的大多都是上面一段代码,问题就在最后一句上面: …
着迷 twittering
似乎最近迷上了翻过伟大的长城这项体育活动,而且还是为翻墙而翻墙那一种。。。 继 twip 之后,又迷上了 gtap 这个 twitter api proxy。这个代理架设在 gae 上,用的还是我熟悉的 python 语言,非常亲切。当然,那坨 Django 的代码也不是我暂时能够捣鼓出来的,hack 的时候用了点拙劣的手法。 twitter 这种思维碎片,我总喜欢将其归为短信一类,因此手机发推才比较接近我的习惯。鉴于非智能机 hack 的难度较高,没有 vpn 和 ssh 可用,只好用 gae …
似乎最近迷上了翻过伟大的长城这项体育活动,而且还是为翻墙而翻墙那一种。。。 继 twip 之后,又迷上了 gtap 这个 twitter api proxy。这个代理架设在 gae 上,用的还是我熟悉的 python 语言,非常亲切。当然,那坨 Django 的代码也不是我暂时能够捣鼓出来的,hack 的时候用了点拙劣的手法。 twitter 这种思维碎片,我总喜欢将其归为短信一类,因此手机发推才比较接近我的习惯。鉴于非智能机 hack 的难度较高,没有 vpn 和 ssh 可用,只好用 gae …
python-twitter 与第三方 api 协作
上回讲到搭建了 twip 作为 twitter api proxy,那当然要好好地利用一下。正好最近做了一个 twitter 的机器人,每次都要翻代理上推实在麻烦,另外一个问题是 twitter 对 http basic authorization 的限制逐渐收紧,现在的 api 限制为 60 per hour,稍后会再次缩减到 45,而 oauth 则相反,准备在 150/h 的基础上逐渐推到 1500/h(via)。因此,利用 twip 的 oauth 特性进行中转会是相当不错的选择。 这个 …
上回讲到搭建了 twip 作为 twitter api proxy,那当然要好好地利用一下。正好最近做了一个 twitter 的机器人,每次都要翻代理上推实在麻烦,另外一个问题是 twitter 对 http basic authorization 的限制逐渐收紧,现在的 api 限制为 60 per hour,稍后会再次缩减到 45,而 oauth 则相反,准备在 150/h 的基础上逐渐推到 1500/h(via)。因此,利用 twip 的 oauth 特性进行中转会是相当不错的选择。 这个 …
Oauth 与 twip 杂感
今天帮忙搭建 twip 了,主要参考了 http://yht.in/archives/90 这篇文章。 twip 的主要原理,就是通过一台在墙外而国内又可以访问的独立主机作为跳板,国内用户首先连接到该独立主机上,然后再通过主机与 twitter 交换数据。为了提高安全性,twitter 今年 6 月份停止了 http basic authorize,取而代之的是 Oauth 的认证。用户的登录过程由 twitter 完成,最后 twitter 将用户的认证结果和授权告诉应用。得益于 …
今天帮忙搭建 twip 了,主要参考了 http://yht.in/archives/90 这篇文章。 twip 的主要原理,就是通过一台在墙外而国内又可以访问的独立主机作为跳板,国内用户首先连接到该独立主机上,然后再通过主机与 twitter 交换数据。为了提高安全性,twitter 今年 6 月份停止了 http basic authorize,取而代之的是 Oauth 的认证。用户的登录过程由 twitter 完成,最后 twitter 将用户的认证结果和授权告诉应用。得益于 …
sshtunnel 翻过伟大的长城
项目进入到一个稳定期,就等词库的扩张了。我打算在 twitter 上架设一个 twitter 机器人,搞搞新意思。看了下 twitter api 的文档,发现 python 的 twitter 库还真不少,看中的有两款:python-twitter 和 tweepy, 稍微看了看,python-twitter 首页就有示例了,就你吧。 以迅雷不及掩耳盗铃之势装好了 simlejson 和 oauth 的依赖,就可以开始工作了。本地测试通过~~由于众所周知的原因,不能直接访问到 twitter,似 …
项目进入到一个稳定期,就等词库的扩张了。我打算在 twitter 上架设一个 twitter 机器人,搞搞新意思。看了下 twitter api 的文档,发现 python 的 twitter 库还真不少,看中的有两款:python-twitter 和 tweepy, 稍微看了看,python-twitter 首页就有示例了,就你吧。 以迅雷不及掩耳盗铃之势装好了 simlejson 和 oauth 的依赖,就可以开始工作了。本地测试通过~~由于众所周知的原因,不能直接访问到 twitter,似 …
python 中文编码笔记
最近碰了很多钉子。。。 不得不说,python2.6 相较于之前发布的版本,就编码方面来说,有明显的进步。本机使用的是 python2.6,同样的代码根本没有遇到问题。到了服务器上部署时,一台服务器的 python2.5 和另一台服务器的 python2.4,都折磨得我苦不堪言。 先厘清几个概念:python 内置的字符类型是 unicode,当需要进行编码转换时,都要先转成 unicode,然后再转换成目标编码。而 str 类型是二进制类型,例如 声明变量 uniStr=u’ 的 …
最近碰了很多钉子。。。 不得不说,python2.6 相较于之前发布的版本,就编码方面来说,有明显的进步。本机使用的是 python2.6,同样的代码根本没有遇到问题。到了服务器上部署时,一台服务器的 python2.5 和另一台服务器的 python2.4,都折磨得我苦不堪言。 先厘清几个概念:python 内置的字符类型是 unicode,当需要进行编码转换时,都要先转成 unicode,然后再转换成目标编码。而 str 类型是二进制类型,例如 声明变量 uniStr=u’ 的 …
分布式有感
最近有点疲于奔命的感觉,孤军作战不是好事阿。 以前学分布式计算原理与应用,一直对老师和教材有不满。教材虽然写的中规中矩,可是对 java 的偏向性无疑是一个败笔。书中的 Java 代码起个 helloworld 的作用还可以,真要用起来总觉得生涩无比,整天就在流里面转来转去。实验方面,socket 的相关代码没有 c 的清晰,要不是 string 类封装了一些应手的函数,真不知道有什么优点。RMI 看上去很美好,只是这种美好是建立在实验的基础上的。要真的应用起来,单单异常处理就会要命,网络的不确 …
最近有点疲于奔命的感觉,孤军作战不是好事阿。 以前学分布式计算原理与应用,一直对老师和教材有不满。教材虽然写的中规中矩,可是对 java 的偏向性无疑是一个败笔。书中的 Java 代码起个 helloworld 的作用还可以,真要用起来总觉得生涩无比,整天就在流里面转来转去。实验方面,socket 的相关代码没有 c 的清晰,要不是 string 类封装了一些应手的函数,真不知道有什么优点。RMI 看上去很美好,只是这种美好是建立在实验的基础上的。要真的应用起来,单单异常处理就会要命,网络的不确 …
CrossSiteRequestForgeries 跨站伪请求
今天看 Django 的 tutorial,里面提到了这样一种跨站攻击: 假设有客户 Bob 在浏览论坛页面(Bob 真可怜~~~),Alice 发布了一个很热的帖子,里面有 而在这个场景里,论坛和银行都是 Bob 所信任的,这就是 csrf 的可怕之处 。Django 推荐凡是影响服务器端数据的动作,均使用 post,另外还引入了 csrf_token 预防事故。
今天看 Django 的 tutorial,里面提到了这样一种跨站攻击: 假设有客户 Bob 在浏览论坛页面(Bob 真可怜~~~),Alice 发布了一个很热的帖子,里面有 而在这个场景里,论坛和银行都是 Bob 所信任的,这就是 csrf 的可怕之处 。Django 推荐凡是影响服务器端数据的动作,均使用 post,另外还引入了 csrf_token 预防事故。
web.py+gae= 我的第一个留言板【一】
最近体验了一把 web.py 开发的便捷。 建议在看 web.py 的 cookbook 之前,对 http 协议的 get 方法和 post 方法先了解一下,html 最好也要有基本的知识。 web.py 的工作流程,一般是从 URL 映射开始,然后把请求分派给不同的处理类处理,处理类比较像一个粘合层,负责从数据层拿数据,以及告诉 render 如何形成最后的页面效果。同时,它也负责控制整个交互的过程。数据层封装了数据库相关的操作,有了它,可以很方便的更换不同的数据库。当然,在具体的字段属性上 …
最近体验了一把 web.py 开发的便捷。 建议在看 web.py 的 cookbook 之前,对 http 协议的 get 方法和 post 方法先了解一下,html 最好也要有基本的知识。 web.py 的工作流程,一般是从 URL 映射开始,然后把请求分派给不同的处理类处理,处理类比较像一个粘合层,负责从数据层拿数据,以及告诉 render 如何形成最后的页面效果。同时,它也负责控制整个交互的过程。数据层封装了数据库相关的操作,有了它,可以很方便的更换不同的数据库。当然,在具体的字段属性上 …
web.py+gae= 我的第一个留言板【二】
下面接着说说 google application engine 和 webpy 配套的问题。在我完成留言板的时候,这方面的资料还是很少,中文资料更少,希望 webpy 社区能够壮大啊。 gae 据说很有 Django 的风格,也是内置 Django 的,而 web.py 则需要自备。因此,在应用目录中应该放入 web.py 解压后得到的 web 目录。否则会导致 Import error: no module named web 详细的发布过程,可以参考 chinaunix 的这篇文章 …
下面接着说说 google application engine 和 webpy 配套的问题。在我完成留言板的时候,这方面的资料还是很少,中文资料更少,希望 webpy 社区能够壮大啊。 gae 据说很有 Django 的风格,也是内置 Django 的,而 web.py 则需要自备。因此,在应用目录中应该放入 web.py 解压后得到的 web 目录。否则会导致 Import error: no module named web 详细的发布过程,可以参考 chinaunix 的这篇文章 …
Datagramsocketwithconnection-orientedinJava
数据报通常采用 udp 协议进行传输,UDP 相较于 TCP 协议能够节省带宽,相应的获得较高速度,但不能保证包的安全抵达和顺序不变。 Java 关于 datagram 提供有 connect 方法,该方法绑定了远端的 IP 地址和端口号,即该 socket 以后只能向绑定目标主机发送数据或接受数据。 当目标地址不可达,且收到了该地址不可达的 ICMP 包时,会抛出 PortUnreachableException 异常,但不能保证一定抛出该异常。 ** 该方法也不能保证包的顺序和安全抵达 …
数据报通常采用 udp 协议进行传输,UDP 相较于 TCP 协议能够节省带宽,相应的获得较高速度,但不能保证包的安全抵达和顺序不变。 Java 关于 datagram 提供有 connect 方法,该方法绑定了远端的 IP 地址和端口号,即该 socket 以后只能向绑定目标主机发送数据或接受数据。 当目标地址不可达,且收到了该地址不可达的 ICMP 包时,会抛出 PortUnreachableException 异常,但不能保证一定抛出该异常。 ** 该方法也不能保证包的顺序和安全抵达 …