止觀


  • 首页

  • 归档

  • 标签

最近收集的一些有用的网站

发表于 2012-10-18   |   分类于 Resources   |  

最近在研究技术中看到了不少有意思的网站,在这里做一下收集整理,希望也能将方便带给大家。

  • 1.http://www.colingo.com/

这是一个在线英语教学的网站,他提供的课程很有特色,会根据个人的英语程度排出各种等级,然后将统一等级的人组织在一起,由一个老师带头围绕某个话题展开讨论。而每次讨论的结果就成为了网站内的课程。让访客能很方便的找到自己定位和感觉(有时会会发现,哇那个白人英文水平比我还差。。。)。如果你脸皮够厚,去注册一个好加入他们的课堂互动当然最好了,英语提升肯定很快。更重要的是居然还是免费的哦。有兴趣的话赶紧试一下吧。(友情提示,请自备凸墙工具。。。)

  • 2.http://flattr.com/

这个网站的想法比较有趣。他的广告语里是这么说的,当你在网上看到一个好东东时,是否总是无耻的拿来主义呢?即使看到有捐钱的链接,作为屌丝的我们是否又总是纠结半天而又选择性无视呢?罪恶感是不是一点点累积以至于最后麻木了呢?再换一个角度想,你过生日的时候买一个蛋糕难道自己一个人吃掉吗?什么?你说要分给别人吃?这又是为什么呢?当然是为了在分享的过程中获得喜悦。这个网站就提出了一种让屌丝花很少的钱享受喜悦,解脱罪恶感的解决方案。把买生日蛋糕的钱摸出来,每月花很少的钱寄放在这个网站上,如果你在网站看到了你觉得有用的内容,只要按一个按钮,你的“蛋糕”就被切了一份分享给了那位仁兄,你点击的越多,切的块就越小,相应的,吃到你蛋糕的人就越多,如果你够懒,只点了一下,那就等于蛋糕那位仁兄独享了,如此看来谁都没有吃亏,决定权在于你自己。这样分享者可以得到惊喜,访问者解除了罪恶感,皆大欢喜,而且创造了一个良性循环。

  • 3.http://sketchpad.io

研究HTML5的时候不小心逛到了,吓到我了,在线PS啊,太猛了。不相信的话可以点击这个示例(效果如图)。这里补充一句,遗憾的通知IE用户,你们OUT了,赶紧去下载Chrome或者FF吧。(IE赶紧XXX吧。。。我忍不住吐个槽。。)

  • 4.一些图床

最后贡献一下我最近收集的一些自认为不错的图床而且都支持拖放上传,这里先卖个关子,因为最后我找到了一个更好的解决方案,这些已经是我的备选了,不过这些图床从使用角度来说,已经足够了。

4.1 https://droplr.com/

严格来说,图床只是其功能的一部分,你可以用它来存放任何文件,而且他有Android, IOS, WP7版本的APP,在任一点上传,网上的人都可以访问得到,可以说非常方便。

4.2 http://minus.com/

除了是一个图床以外,还是一个很好的分享平台,在其主页上就能看到很多别人上传的照片。闲的蛋疼的话可以多往下拉一拉,参考一下人家的创意。

4.3 http://imgur.com/

功能和minus类似,不过名气较小,而且到目前为止未被墙过,可谓十分靠谱。注册了以后还有更多高级功能哦。

4.4 围脖是个好图床

什么?你说都是国外的嫌速度慢?好吧,我偷偷告诉你们这个地址,一般人我不告诉他,这是人家写的一个应用,挂在了新浪app上,速度绝对一流,不过稳定性就不敢保证了,适合放一些临时图片。

好啦,希望本文能起到抛砖引玉的作用,各位如果发现什么好站也请留言交流哦。

在VS+PYTOOL下配置virtualenv环境调试python程序

发表于 2012-10-12   |   分类于 Practice   |  

继《Windows下免费Python IDE的又一种选择》提供了IDE环境之后,接下来的问题就是如何让这个IDE根据不同的virtualenv来进行调试了。

经过了一番折腾后,发现要实现这个目标一点也不难,我直接贴图说明吧:

  1. 将env目录一起作为现有python目录加入到新建的项目。

  2. 右键点击python项目,选择“属性”,出现如下画面:

  3. 选择“Debug”标签,在“Interpreter Path”里填入“env”文件夹内的python.exe的路径。(位于[env名称]\Scripts\Python.exe),然后在“Script Arguments”里填入运行时程序需要的参数(如果有的话)。

  4. 好了,现在可以直接按F5或者启动调试(小三角)按钮体验一下效果吧,如图:

  5. 一般情况下程序以及可以进入断点了,如果不起作用是怎么回事呢?那是因为启动程序时,python可能开启了多个进程,只要VS将这些进程都一一挂载上去(VS快捷键Ctrl+Alt+P)后就没问题了。如图:

    我们来看一下效果:

好了,祝大家玩的愉快,有问题请留言。

解决Python2.7的UnicodeEncodeError

发表于 2012-10-10   |   分类于 Practice   |  

今天在爬网页的时候碰到了UnicodeEncodeError 错误:

UnicodeEncodeError: 'ascii' codec can't encode characters in position

通过自己Google后,发现Python默认是ascii编码,识别有些中文字符时就会报错。

解决方法很简单,3句话。

import sys
reload(sys)
sys.setdefaultencoding('gbk')

Windows下免费Python IDE的又一种选择

发表于 2012-10-08   |   分类于 Practice   |  

在Windows下开发Python应用并不是主流,但是考虑到Windows巨大的用户群,以及在很多不得已的情况下需要在Windows下做Python的开发和调试,Windows下Python IDE的选择往往让很多人纠结。目前来说流行的IDE有以下几种:

  • 1.Pycharm

    功能强大齐全,但是收费。

  • 2.Eclips + PyDev

    中规中矩,适合Java系和PHP系程序员。

  • 3.Ulipad

    国人开发的Python专属文本编辑器,整合了调试器,适合初学者上手。

  • 4.其他文本编辑器配合调试器

    例如Vim, Notepad++, Sublime Text2等。。。适合高人使用。

今天要介绍一下这个组合:Pytools + Visual Studio (请注意,是免费的解决方案哦,不用去下载安装完整版的VS)

啥, 为什么, 什么玩意, … ?

Python Tools for Visual Studio 是一个由微软技术开发小组提供的VS的开源插件。

PTVS(缩写)能让开发人员使用VS的大多数主要功能来开发Python、Cpython或是IronPython程序。

使被傻瓜化很久的.Net程序员也可以轻松搞定Python程序的编写与调试(就像我一样。。。)。

只要很简单的几个步骤,你就能定制VS使其成为一个很好的Python的开发调试工具。

注意: PTVS 并不是Python的一个分支; 但是它能与你原有的Python/IronPython环境进行集成,提供编辑代码和调试程序的功能。

The Visual Studio Shell

PTVS并不需要完整版的Visual Studio,只要安装Microsoft Visual Studio 2010(2012) Shell (Integrated)就足够了(这个是下载免费安装的)

VS 2010 Shell 可以点击此链接下载:

http://www.microsoft.com/downloads/en/details.aspx?FamilyID=8e5aa7b6-8436-43f0-b778-00c3bca733d3

VS Shell(集成模式)是一个可以提供无缝嵌入工具和编程语言的平台,其本身并不包含任何编程语言,所以这就提供了一个非常干净的IDE平台。

他还可以无缝的与VS 2010专业版及以上版本衔接,在Shell版上安装的任何工具,在同一台电脑上的专业版上也可以直接使用(.Net程序员的福音。。。)

另外VS Shell还十分小巧,完全可以用U盘打包带走,使python程序开发远离了VS的臃肿。

好了,VS系的屌丝们,断点爽起来,进程挂起来,继续傻起来吧。。。

翻译自: http://pvdevtools_doc.readthedocs.org/en/2011.07.08/devel/IDEs/MSVC/pytools.html

通过Gevent+Apache(反向代理)部署Flask应用

发表于 2012-10-04   |   分类于 DevOps   |  
1. 安装gevent

Windows下的话有exe包的,先装greenlet,再装gevent

Debian下先安装libevent

cd /tmp
wget https://github.com/downloads/libevent/libevent/libevent-2.0.20-stable.tar.gz
tar zxvf libevent-2.0.20-stable.tar.gz
cd libevent-2.0.20-stable
./configure --prefix=/usr/local/libevent --enable-shared
make
make check
make install

再安装gevent

pip install gevent
2. 安装Apache

详细步骤请参考。

3. 修改Apache配置文件,重启Apache

示例文件:/etc/apache2/sites-available/example.net

<VirtualHost *:80>
     ServerAdmin admin@example.org
     ServerName example.org
     ServerAlias www.example.org
     DocumentRoot /srv/www/example.org/public_html/
     ErrorLog /srv/www/example.org/logs/error.log
     CustomLog /srv/www/example.org/logs/access.log combined
     ProxyRequests Off 
     <Proxy *> 
          Order deny,allow 
         Allow from all 
     </Proxy> 
     ProxyPass / http://127.0.0.1:9000/
     ProxyPassReverse / http://127.0.0.1:9000/
</VirtualHost>

重启Apache

/etc/init.d/apache2 reload
/etc/init.d/apache2 restart
4. 修改Flask项目下的执行文件(run.py)
@manager.command
def rungevent(port=9000, name=''):
    from gevent.wsgi import WSGIServer
    """
    from werkzeug.debug import DebuggedApplication
    app.wsgi_app=DebuggedApplication(app.wsgi_app,True)
    app.debug = True
    """
    server = WSGIServer((name, port), 
                        app)
    server.serve_forever()
5. 在virtualenv的环境下后台加载Flask项目
nohup python run.py rungevent
6. 停止Flask网站时的操作

执行命令列出所有Linux进程。

ps -aux

找到nohup python进程并记住进程pid。

执行命令

kill [进程pid]

立即中止。

通过Nginx+uWSGI部署Flask应用

发表于 2012-10-03   |   分类于 DevOps   |  
1. 安装Nginx

详细步骤请戳。

2. 安装uWSGI
pip install uWSGI
3. 运行uWSGI

根据Flask文档里写的配置是可以运行的,但是有不少缺陷。

  • 1.如果你用virtualenv,需要指定python 的home目录;
  • 2.Nginx由于权限问题无法读取/tmp/uwsgi.sock文件。

那么上面的命令可以改成:

uwsgi -s /tmp/uwsgi.sock -w flask_file_name:app -H /path/to/virtual/env --chmod-socket 666
4. 配置Nginx
server { 
    listen 80; 
    server_name myapp.com; 
    root /path/to/flask/static; 
    location / { 
        include uwsgi_params; 
        uwsgi_pass unix:/tmp/uwsgi.sock; 
    } 
}
5. 安装supervisor
pip install supervisor
6. 配置supervisor

找到/etc/supervisord.conf,在文件末尾处添加如下内容:

[program:myapp] 
command=/path/to/virtual/env/bin/uwsgi -s /tmp/uwsgi.sock -w flask_file_name:app -H /path/to/virtual/env --chmod-socket 666 
directory=/path/to/app 
autostart=true 
autorestart=true 
stdout_logfile=/path/to/app/logs/uwsgi.log 
redirect_stderr=true 
stopsignal=QUIT
7. 管理uWSGI进程

执行supervisroctl可以进入管理控制台
如果希望重新加载uWSGI进程,你可以

supervisorctl reload myapp

如果是重启的话,

supervisorctl restart myapp

更多指令,请参考supervisor手册,如果觉得烦,可以先这篇中文介绍。

本文转载自 http://blog.rebill.info/archives/deploying-Flask-application-with-nginx-uWSGI-and-Supervisor.html。有一些小的改动,不过尚未完全验证,待验证完毕后我会对有疑问或者是错误的地方进行更新的。欢迎各位留言。

無心無生

发表于 2012-10-02   |   分类于 Diary   |  

妄本不生,無妄可息;知心無心,無心可止。若要了心,無心可了;無了之心,是名真了。唐代六祖慧能大師在《六祖壇經》中指出:知見一切法,心不染著,是為無念。用即徧一切處,亦不著一切處,但淨本心,使六識出六門,於六塵中無染無雜,來去自由,通用無滯。

在Windows上如何调试node.js应用(非http)

发表于 2012-07-13   |   分类于 StackOverflow   |  

StackOverflow地址

http://stackoverflow.com/questions/11437958/how-to-debug-a-basic-node-js-application-not-http-on-windows

问题描述

楼主知道如何使用node-inspector和iisnode调试http应用,但是不知道是不是可以用node-inspector调试非http应用,尤其在Windows上?
楼主尝试了:

1
node debug test.js

返回:

1
debugger listening on port 5858

然而在chrome中访问http://localhost:5858/什么也没有出现。

最佳解答

使用node-inspector的正确姿势是node --debug而不是node debug。
以下是具体步骤:

  • 全局安装node-inspector
  • 在命令行窗口下执行:node-inspector
  • 打开chrome进入http://localhost:8080/debug?port=5858。你可以看到node-inspector的界面但是里面没有跑任何应用。
  • 另开一个命令行窗口,执行你的应用并带上--debug后缀。例如:node --debug test.js。
  • 刷新浏览器后搞定。
    一些有趣的情况:
  • 如果你这个时候重启了你的应用并刷新浏览器,你会看到之前设置的断点依旧存在。
  • 如果你希望在启动应用的同时马上进入断点停在执行代码的第一行,可以这么干:node --debug-brk test.js
123
Fermin Yang

Fermin Yang

28 日志
7 分类
35 标签
RSS
© 2016 Fermin Yang
由 Hexo 强力驱动
主题 - NexT.Muse