Analitycs
вторник, 14 февраля 2012 г.
понедельник, 13 февраля 2012 г.
суббота, 11 февраля 2012 г.
Как проверить string ли переменная в Python? - isinstance(val, basestring)
Когда нужно проверить - строка ли переменная в Python - есть небольшой подводный камень, о котором иногда забывают...
Все ли помнят что строки в питоне разные? (например, str и unicode), так что для общей проверки нужно использовать isinstance(val, basestring):
Например
Все ли помнят что строки в питоне разные? (например, str и unicode), так что для общей проверки нужно использовать isinstance(val, basestring):
Например
$ python
Python 2.7.1 (r271:86832, Jul 31 2011, 19:30:53)
[GCC 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> isinstance('abcd', str)
True
>>> isinstance('abcd', basestring)
True
>>> isinstance(u'abcd', str)
False
>>> isinstance(u'abcd', basestring)
True
пятница, 10 февраля 2012 г.
Как запускать периодические задачи на Tornado? PeriodicCallback!
Продолжая тему периодических задач в Twisted, в Tornado это делается немного по другому - с помощью специального tornado.ioloop.PeriodicCallback.
Примерчик - если кому пригодится
Примерчик - если кому пригодится
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import tornado.web
import tornado.httpserver
import tornado.ioloop
PERIOD = 30 # в минутах
class MyApplication(tornado.web.Application):
def period_run(self):
# чего-то тут делаем
pass
...
app = MyApplication(handlers=urls, **settings)
http_server = tornado.httpserver.HTTPServer(app, xheaders=True)
loop = tornado.ioloop.IOLoop.instance()
period_cbk = tornado.ioloop.PeriodicCallback(app.period_run, 1000*60*PERIOD, loop)
period_cbk.start()
loop.start()
вторник, 7 февраля 2012 г.
Как сделать hard-reset на LG Optimus Black?
Шаманство с зажатием Volume Down + Power + Home при включении не прокатило, может граната у меня не той системы?
В итоге - hard-reset через коды
dial 3845#*970#
Разумеется - все данные похерятся.
В итоге - hard-reset через коды
dial 3845#*970#
Разумеется - все данные похерятся.
понедельник, 6 февраля 2012 г.
Сервер боевой или production? - или лингвистические особенности
Забавный лингвистический факт.
Сервера, на которых крутятся сайты/сервисы для клиентов:
Ох, не спроста имеется эта разница в национальных названиях... ох не спроста ;-) ;-)
Сервера, на которых крутятся сайты/сервисы для клиентов:
- в английском языке они всегда называются production server - PRODUCTION, то есть производственные.
- в русском же языке сплошь и рядом - БОЕВЫЕ сервера. То есть - те, на которые идешь в бой, соответсвенно - либо победишь, либо проиграешь.
Ох, не спроста имеется эта разница в национальных названиях... ох не спроста ;-) ;-)
пятница, 3 февраля 2012 г.
Как перезапустить демонизированный процесс в Supervisord?
Если в supervisord запущено несколько процессов и один из них отвалился, не нужно перезапускать демон целиком - есть консольная утилитка supervisorctl.
Ага, вот процесс-виновник - перезапускаем халявщика
Все ОК - "13 секунд, полёт нормальный. Хьюстон, у нас НЕТ проблемы" (с)
# supervisorctl api-test-data RUNNING pid 22443, uptime 1 day, 16:52:01 api-test-empty FATAL Exited too quickly (process log may have details) auth-service RUNNING pid 22444, uptime 1 day, 16:52:01
Ага, вот процесс-виновник - перезапускаем халявщика
supervisor> start api-test-empty api-test-empty: started supervisor> status api-test-data RUNNING pid 22443, uptime 1 day, 16:52:29 api-test-empty RUNNING pid 27360, uptime 0:00:13 auth-service RUNNING pid 22444, uptime 1 day, 16:52:29 supervisor>
Все ОК - "13 секунд, полёт нормальный. Хьюстон, у нас НЕТ проблемы" (с)
Подписаться на:
Комментарии (Atom)



