Play with Alfred

Alfred 是一款 OSX 下的效率软件,类型系统的 Spotlight,但强大许多,默认快捷键:option + space

基础功能

能够让你快速的启动系统中所安装的应用程序,比如我输入 c,回车即可打开 chrome 浏览器,也可以上下选择不同的应用

app

能够无需打开浏览器,无需打开 google 主页,直接通过 google 搜索关键字

search

能够代替系统计算器做简单的运算

cal

可以很方便的听 iTunes 里的音乐

music

这些都是 Alfred 最基本的功能,免费版就可以使用,并且没有广告及时间限制

通过查看 Usage,发现我每天大概使用 30 次左右,主要用于打开应用

增强功能

他的强大远远不止这些,他的 powerpack 才是重点,列举几个我常用的 workflow

Adium: talk with someone with adium

adium

Datetime Format Converter: switch timestamp and datetime

datetime

Dev Doctor: docs(python, java, php, etc…)

dev

Douban: search movie, book, music in douban

douban

Weather: 查看天气情况

weather

Youdao: 有道翻译

youdao

还有非常多的 workflow,更多,速度使用吧!

REFs:

下载 alfred

下载 powerpack

借助 Alfred 2.0 的 Workflows 功能可以做哪些好玩的事情?

(Comments)


About monitoring

New Relic

New Relic is the all-in-one web application performance tool that lets you see performance from the end user experience down to the line of application code.

用于监控服务器状态,及自定义服务的负载,一个网站或应用相关的所有东西都可监控

收费并且不便宜

自己构建

对于服务异常,我们使用 django-sentry,相关文档及 client 比较完善

对于系统级监控,指标收集使用 collectd

对于自定义监控,指标收集使用 statsite

指标收集也可以看看:bucky

对于指标展示,使用 graphite,更好的 dashboard graphene dashing

对于报警,我们使用 nagios,比较灵活

REFs:

newrelic

http://blog.dccmx.com/2012/12/build-perfect-monitoring-system/

(Comments)


uncompyle -- A Python 2.7 byte-code decompiler

缘起

本想清理代码中的 pyc 文件,不想少打了 c,导致所有的源文件被清空,还好是个 demo,代码不多,并且 pyc 还存在,在懒得重新写时,想起来是否可以反编译 pyc 文件。

针对 py2.7 生成的代码,通过试用各个反编译的工具,最后发现 uncompyle 比较好用

‘uncompyle’ converts Python byte-code back into equivalent Python source. It accepts byte-code from Python version 2.7 only.

The generated source is very readable: docstrings, lists, tuples and hashes get pretty-printed.

Install

git clone https://github.com/gstarnberger/uncompyle.git
cd uncompyle/
python setup.py install

Usage

uncompyler.py -h

DEMO

$ more quick_sort.py
#-*- coding: utf-8 -*-


def qsort1(list):
    """
    Quicksort using list comprehensions
    >>> qsort1<<docstring test numeric input>>
    <<docstring test numeric output>>
    >>> qsort1<<docstring test string input>>
    <<docstring test string output>>
    """
    if list == []:
        return []
    else:
        pivot = list[0]
        lesser = qsort1([x for x in list[1:] if x < pivot])
        greater = qsort1([x for x in list[1:] if x >= pivot])
        return lesser + [pivot] + greater


if __name__ == '__main__':
    import random
    a = [random.randint(0, 100) for i in range(10)]
    a = qsort1(a)
    print a

当这个代码被删除后,但保留有其 pyc 文件: quick_sort.pyc,执行如下命令

$ uncompyler.py quick_sort.pyc

生成代码如下,基本完整保留了源代码的所有信息

# 2013.07.24 23:09:19 CST

def qsort1(list):
    """
    Quicksort using list comprehensions
    >>> qsort1<<docstring test numeric input>>
    <<docstring test numeric output>>
    >>> qsort1<<docstring test string input>>
    <<docstring test string output>>
    """
    if list == []:
        return []
    else:
        pivot = list[0]
        lesser = qsort1([ x for x in list[1:] if x < pivot ])
        greater = qsort1([ x for x in list[1:] if x >= pivot ])
        return lesser + [pivot] + greater


if __name__ == '__main__':
    import random
    a = [ random.randint(0, 100) for i in range(10) ]
    a = qsort1(a)
    print a

+++ okay decompyling quick_sort.pyc
# decompiled 1 files: 1 okay, 0 failed, 0 verify failed
# 2013.07.24 23:09:19 CST

REFs:

https://github.com/gstarnberger/uncompyle

http://stackoverflow.com/questions/8189352/decompile-python-2-7-pyc

http://en.literateprograms.org/Quicksort_(Python)

(Comments)