Eugene @hardexread-only
Пользователь
Разминка для шеи в терминале
1 min
24KСегодня первое апреля, а значит, настало время глупых, жестоких и бессмысленных розыгрышей.
Поэтому буду краток.
Код и инструкция по установке
P.S. после небольшого допиливания можно заменить любую другую утилиту.
Поэтому буду краток.
Код и инструкция по установке
P.S. после небольшого допиливания можно заменить любую другую утилиту.
+55
Мой инструмент для тайм-трекинга и выписывания инвойсов
1 min
64KПривет! В честь наступающего понедельника я хочу поделиться инструментом для трекинга рабочего времени, который я сам написал и которым сам пользуюсь. Как фрилансер, я работаю по почасовой оплате и для меня важно:
Под влиянием симптома NIH я написал самый лучший в мире тайм-трекер :)
- учитывать затраченное по задачам время
- выписывать заказчикам инвойсы
Под влиянием симптома NIH я написал самый лучший в мире тайм-трекер :)
+49
Веб-интерфейс для кофеварки на Ajenti через HTCPCP
5 min
19KTutorial
Надоело бегать за кофе и жать кнопки на кофеварке? Сделай к ней веб-интерфейс!
+38
PyFence: верификация типов для Python
2 min
6.9KPyFence — самопальная утилита-библиотека, которая позволяет следить за соответствием типов во время отладки вашего проекта. PyFence берет информацию о типах из docstring'ов функций в стандартном формате Sphinx. То есть, если у вас уже есть документация, больше ничего делать для использования PyFence не нужно!
Например, возьмем следующий класс:
+23
ExConsole — экстренная консоль для Python
1 min
4.9KПост обещает быть сверхкратким.
ExConsole позволяет встроить интерактивную консоль-отладчик в Python-приложение. Консоль вызывается при фатальном исключении либо по приему SIGQUIT (он же Ctrl-\).
Пример использования:
Пример работы с консолью:
ExConsole позволяет встроить интерактивную консоль-отладчик в Python-приложение. Консоль вызывается при фатальном исключении либо по приему SIGQUIT (он же Ctrl-\).
Пример использования:
import exconsole
exconsole.register()
do_dangerous_stuff()
Пример работы с консолью:
Activating emergency console
----------------------------
Caused by:
ZeroDivisionError
integer division or modulo by zero
Stack frames:
[ 0] example.py:17
[ 1] example.py:15
Tester().test()
[ 2] example.py:9
self.inner()
[ 3] example.py:6
self.divide(2, 0)
> [ 4] example.py:3
return a / b
On frame 4
Source:
def divide(self, a, b):
>> return a / b
Press Ctrl-D to leave console
Type "_help()"" for built-in commands
>>> print a,b
2 0
>>> _f(3)
On frame 3
Source:
def inner(self):
>> self.divide(2, 0)
>>> print self
<__main__.Tester instance at 0x7f67c9a0e440>
+18
+95
Красивые трейсбеки в Python
1 min
21KКак часто вам присылают подобные отчеты об ошибке?
Ох, если бы только узнать значение lst и index на тот момент...
python-catcher — автоматическая генерация HTML-трейсбеков с локальными переменными и исходниками, + загрузка в интернет — пользуйтесь на здоровье.
Traceback (most recent call last):
...
File "...", line ..., in ...
process(lst[index])
IndexError: list index out of range
Ох, если бы только узнать значение lst и index на тот момент...
python-catcher — автоматическая генерация HTML-трейсбеков с локальными переменными и исходниками, + загрузка в интернет — пользуйтесь на здоровье.
+84
Редактирование конфигов в Python
4 min
17KВам когда-нибудь приходилось парсить и программно вносить изменения в чужие конфигурационные файлы? А в файлы с ненормальными форматами вроде того, что у NSD или BIND9? А если формат предусматривает переносы строк, смысловые отступы и сохранение комментариев, задача быстро покидает категорию тривиальных.
Вот почему я делюсь с вами библиотекой python-reconfigure.
+44
Имитируем адаптацию глаза к темноте в 3D, или HDR для чайников
4 min
42KTutorial
Всем знаком эффект временной слепоты, когда вы входите в темное помещение из светлого. Согласно распространенному заблуждению, чувствительность зрения регулируется размером зрачка. На самом деле, изменение площади зрачка регулирует количество поступающего света всего лишь в 25 раз, а основную роль в адаптации играют сами клетки сетчатки.
Для имитации этого эффекта в играх используется механизм, называемый tonemapping.
tonemapping — процесс проекции всего бесконечного интервала яркостей (HDR, high dynamic range, от 0 и до бесконечности) на конечный интервал восприятия глаза/камеры/монитора (LDR, low dynamic range, ограничен с обоих сторон).
Для того, чтобы работать с HDR, нам понадобится соответствующий экранный буфер, поддерживающий значения больше единицы. Наша же задача будет состоять в правильной конвертации этих значений в диапазон [0..1].
Для имитации этого эффекта в играх используется механизм, называемый tonemapping.
tonemapping — процесс проекции всего бесконечного интервала яркостей (HDR, high dynamic range, от 0 и до бесконечности) на конечный интервал восприятия глаза/камеры/монитора (LDR, low dynamic range, ограничен с обоих сторон).
Для того, чтобы работать с HDR, нам понадобится соответствующий экранный буфер, поддерживающий значения больше единицы. Наша же задача будет состоять в правильной конвертации этих значений в диапазон [0..1].
+109
Имитируем ночное зрение человека в 3D-игре
4 min
58KTutorial
Сегодня мы будем заниматься постпроцессингом изображения в DirectX.
Как известно, в темноте зрение человека обеспечивается клетками-палочками сетчатки, высокая световая чувствительность которых достигается за счет потери цветочувствительности и остроты зрения (хотя палочек в сетчатке и больше, они распределены по гораздо большей площади, так что суммарное «разрешение» выходит меньше).
Все эти эффекты можно наблюдать самому, оторвавшись от компьютера и выйдя ночью на улицу.
В результате мы получим что-то вроде следующего (смотреть на весь экран!):
До: унылый польский шутер
После: финалист IGF и лауреат всех наград E3
Как известно, в темноте зрение человека обеспечивается клетками-палочками сетчатки, высокая световая чувствительность которых достигается за счет потери цветочувствительности и остроты зрения (хотя палочек в сетчатке и больше, они распределены по гораздо большей площади, так что суммарное «разрешение» выходит меньше).
Все эти эффекты можно наблюдать самому, оторвавшись от компьютера и выйдя ночью на улицу.
В результате мы получим что-то вроде следующего (смотреть на весь экран!):
До: унылый польский шутер
После: финалист IGF и лауреат всех наград E3
+97
Ajenti 0.6
1 min
5.5KМы снова приветствуем вас на волнах Changelog FM, и сегодня у нас в студии — Ajenti 0.6.0.
+196
Ajenti 0.4
1 min
1.7KЗа короткий срок мне удалось выполнить почти все ваши, хабраюзеры, заказы на функциональность, и теперь я просто хочу донести до вас новость о выпуске новой версии (осторожно, пост-changelog!).
Традиционная картинка для привлечения внимания:
Традиционная картинка для привлечения внимания:
+171
Ajenti — полгода спустя
2 min
11KКазалось бы, не так давно я представлял Хабру свой проект.
Откликнулось много людей, некоторые пришли и оставили свой след в исходниках и истории коммитов, некоторые исчезли, кто-то все еще с нами.
Я хочу выразить всем им свою благодарность, потому что без них у меня вряд ли что-нибудь получилось.
А сегодня я наконец выпускаю альфа-версию проекта.
Под катом вас ждет много интересного, а сейчас дохабракатный мотивационный скриншот:
Откликнулось много людей, некоторые пришли и оставили свой след в исходниках и истории коммитов, некоторые исчезли, кто-то все еще с нами.
Я хочу выразить всем им свою благодарность, потому что без них у меня вряд ли что-нибудь получилось.
А сегодня я наконец выпускаю альфа-версию проекта.
Под катом вас ждет много интересного, а сейчас дохабракатный мотивационный скриншот:
+238
OpenSource проект ищет разработчиков
1 min
4.3KЗдравствуй, Хабр! Я хочу представить тебе свой некоммерческий проект и найти единомышленников/соразработчиков.
Мотивационный скриншот
+208
+4
SyncStream — библиотека C# для передачи данных по нестабильным каналам
3 min
2.3KНедавно нашел старую самопальную библиотеку, реализовавшую простой протокол передачи данных в пакетах по TCP.
После обработки напильником и долотом получилось очень даже ничего (:
Встречайте — библиотека SyncStream для передачи данных по глючащим каналам:
После обработки напильником и долотом получилось очень даже ничего (:
Встречайте — библиотека SyncStream для передачи данных по глючащим каналам:
- Восстанавливает синхронизацию между сервером и клиентом, если часть данных «провалилась» по пути
- Проверяет целостность всех доставляемых пакетов
- Имеет механизм гарантированной доставки для особо важных пакетов
- Не завязан на низлежащий протокол передачи — можно прикрутить даже к лазерному каналу
+22
CES 2010: ioSafe Solo NAS под гусеницами бульдозера
1 min
1.5KTranslation
В Лас-Вегасе всегда все делали слишком. Такой же была и презентация сетевого хранилища ioSafe.
ioSafe Solo NAS защищает диск от огня, жидкости и давления. SSD-версия хранилища имеет еще более невероятную защиту.
ioSafe Solo NAS защищает диск от огня, жидкости и давления. SSD-версия хранилища имеет еще более невероятную защиту.
+60
+102
Плагины в Python
4 min
16KСегодня я расскажу, как построить плагиновую архитектуру в python на include'ах.
+39
Information
- Rating
- Does not participate
- Location
- Düsseldorf, Nordrhein-Westfalen, Германия
- Registered
- Activity