Pull to refresh
172
Eugene @hardexread⁠-⁠only

Пользователь

Send message

Разминка для шеи в терминале

Reading time1 min
Views24K
Сегодня первое апреля, а значит, настало время глупых, жестоких и бессмысленных розыгрышей.
Поэтому буду краток.



Код и инструкция по установке

P.S. после небольшого допиливания можно заменить любую другую утилиту.
Total votes 67: ↑61 and ↓6+55
Comments16

Мой инструмент для тайм-трекинга и выписывания инвойсов

Reading time1 min
Views64K
Привет! В честь наступающего понедельника я хочу поделиться инструментом для трекинга рабочего времени, который я сам написал и которым сам пользуюсь. Как фрилансер, я работаю по почасовой оплате и для меня важно:
  • учитывать затраченное по задачам время
  • выписывать заказчикам инвойсы

Под влиянием симптома NIH я написал самый лучший в мире тайм-трекер :)

Читать дальше →
Total votes 61: ↑55 and ↓6+49
Comments48

PyFence: верификация типов для Python

Reading time2 min
Views6.9K


PyFence — самопальная утилита-библиотека, которая позволяет следить за соответствием типов во время отладки вашего проекта. PyFence берет информацию о типах из docstring'ов функций в стандартном формате Sphinx. То есть, если у вас уже есть документация, больше ничего делать для использования PyFence не нужно!

Например, возьмем следующий класс:
Читать дальше →
Total votes 29: ↑26 and ↓3+23
Comments18

ExConsole — экстренная консоль для Python

Reading time1 min
Views4.9K
Пост обещает быть сверхкратким.

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>


Читать дальше →
Total votes 20: ↑19 and ↓1+18
Comments9

Красивые трейсбеки в Python

Reading time1 min
Views21K
Как часто вам присылают подобные отчеты об ошибке?

Traceback (most recent call last):
...
  File "...", line ..., in ...
    process(lst[index])
IndexError: list index out of range


Ох, если бы только узнать значение lst и index на тот момент...

python-catcher — автоматическая генерация HTML-трейсбеков с локальными переменными и исходниками, + загрузка в интернет — пользуйтесь на здоровье.



Читать дальше →
Total votes 94: ↑89 and ↓5+84
Comments21

Редактирование конфигов в Python

Reading time4 min
Views17K


Вам когда-нибудь приходилось парсить и программно вносить изменения в чужие конфигурационные файлы? А в файлы с ненормальными форматами вроде того, что у NSD или BIND9? А если формат предусматривает переносы строк, смысловые отступы и сохранение комментариев, задача быстро покидает категорию тривиальных.

Вот почему я делюсь с вами библиотекой python-reconfigure.
Читать дальше →
Total votes 44: ↑44 and ↓0+44
Comments32

Имитируем адаптацию глаза к темноте в 3D, или HDR для чайников

Reading time4 min
Views42K
Всем знаком эффект временной слепоты, когда вы входите в темное помещение из светлого.  Согласно распространенному заблуждению, чувствительность зрения регулируется размером зрачка. На самом деле, изменение площади зрачка регулирует количество поступающего света всего лишь в 25 раз, а основную роль в адаптации играют сами клетки сетчатки.

title

Для имитации этого эффекта в играх используется механизм, называемый tonemapping.

tonemapping — процесс проекции всего бесконечного интервала яркостей (HDR, high dynamic range, от 0 и до бесконечности) на конечный интервал восприятия глаза/камеры/монитора (LDR, low dynamic range, ограничен с обоих сторон).

Для того, чтобы работать с HDR, нам понадобится соответствующий экранный буфер, поддерживающий значения больше единицы. Наша же задача будет состоять в правильной конвертации этих значений в диапазон [0..1].

Читать дальше →
Total votes 113: ↑111 and ↓2+109
Comments31

Имитируем ночное зрение человека в 3D-игре

Reading time4 min
Views58K
Сегодня мы будем заниматься постпроцессингом изображения в DirectX.

Как известно, в темноте зрение человека обеспечивается клетками-палочками сетчатки, высокая световая чувствительность которых достигается за счет потери цветочувствительности и остроты зрения (хотя палочек в сетчатке и больше, они распределены по гораздо большей площади, так что суммарное «разрешение» выходит меньше).

Все эти эффекты можно наблюдать самому, оторвавшись от компьютера и выйдя ночью на улицу.

В результате мы получим что-то вроде следующего (смотреть на весь экран!):

До: унылый польский шутер


После: финалист IGF и лауреат всех наград E3

Читать дальше →
Total votes 115: ↑106 and ↓9+97
Comments57

Ajenti 0.4

Reading time1 min
Views1.7K
За короткий срок мне удалось выполнить почти все ваши, хабраюзеры, заказы на функциональность, и теперь я просто хочу донести до вас новость о выпуске новой версии (осторожно, пост-changelog!).

Традиционная картинка для привлечения внимания:

image
Читать дальше →
Total votes 191: ↑181 and ↓10+171
Comments163

Ajenti — полгода спустя

Reading time2 min
Views10K
Казалось бы, не так давно я представлял Хабру свой проект.
Откликнулось много людей, некоторые пришли и оставили свой след в исходниках и истории коммитов, некоторые исчезли, кто-то все еще с нами.
Я хочу выразить всем им свою благодарность, потому что без них у меня вряд ли что-нибудь получилось.
А сегодня я наконец выпускаю альфа-версию проекта.

Под катом вас ждет много интересного, а сейчас дохабракатный мотивационный скриншот:

image
Читать дальше →
Total votes 250: ↑244 and ↓6+238
Comments165

SyncStream — библиотека C# для передачи данных по нестабильным каналам

Reading time3 min
Views2.3K
Недавно нашел старую самопальную библиотеку, реализовавшую простой протокол передачи данных в пакетах по TCP.
После обработки напильником и долотом получилось очень даже ничего (:

Встречайте — библиотека SyncStream для передачи данных по глючащим каналам:
  • Восстанавливает синхронизацию между сервером и клиентом, если часть данных «провалилась» по пути
  • Проверяет целостность всех доставляемых пакетов
  • Имеет механизм гарантированной доставки для особо важных пакетов
  • Не завязан на низлежащий протокол передачи — можно прикрутить даже к лазерному каналу


Читать дальше →
Total votes 50: ↑36 and ↓14+22
Comments38

CES 2010: ioSafe Solo NAS под гусеницами бульдозера

Reading time1 min
Views1.5K
В Лас-Вегасе всегда все делали слишком. Такой же была и презентация сетевого хранилища ioSafe.
ioSafe Solo NAS защищает диск от огня, жидкости и давления. SSD-версия хранилища имеет еще более невероятную защиту.


Читать дальше →
Total votes 66: ↑63 and ↓3+60
Comments83

Обзор ОС МСВС 3.0 r14 от 07.2009 в картинках

Reading time2 min
Views60K
В статье описана установка МСВС и мои впечатления от того, что установилось.
Желающие всегда могут найти дистрибутив где надо, а именно — на торрентах.

image

Осторожно, под катом мегабайты скриншотов
Читать дальше →
Total votes 144: ↑123 and ↓21+102
Comments166

Information

Rating
Does not participate
Location
Düsseldorf, Nordrhein-Westfalen, Германия
Registered
Activity