Как стать автором
Обновить
6
0.2
Роман Давыдкин @Beholder

Java-разработчик

Отправить сообщение

Чего не хватает bittorrent?

Время на прочтение1 мин
Количество просмотров1.4K
Предлагаю обсудить функциональные недостатки torrent сетей, а так же предложить возможные решения и обходные пути.

1. Сложность добавления/удаление файла из существующей раздачи.

2. Раздачи могут пересекаться в отдельных файлах, а так же дублироваться на разных трекерах, в таких случаях организация трафика и степень доступа к сидерам явно далека от оптимальной.

3. Сложность оформленя раздачи для многих трекеров, как следствие мне кажется необходимо внесение расширенного формата для метаданных в torrent файле, некого аналога ID3.

4. Неполные раздачи (availability<1), возможно проблему удастся частично решить скрещиванием torrent с файл-хостингом, так же вуступающим помошником при суперсидировании.

5. Сложность автоматизации передачи данных между небольшой группой людей
Для меня в идеале — это некая распределенная синхронизирующаяся папка плюс плагины к instant messenger-ам — кинул файл в окно и пошла раздача/скачивание.

6. Отсутствие централизованного поиска по трекерам.
Лучшим из них мне кажется вариант [искомое] +".torrent" вбитые в google, но как правило, поисковик выдает огромное количество поделок черных SEO-шников.

7. Простота обхода учета трафика, как следствие многие трекеры заполняются leech-only пользователями.

8. Технические проблемы соединения у многих пользователей
Сложно решаемая проблема, но факт остается фактом, у многих пользователей сетевые настройки ПО, ОС и оборудования сильно занижают скорость работы torrent-сетей, технология UPnP, призваная отчасти решить эти проблемы, как правило неэффективна.

P.S. Я использую torrents.ru, game-torrent.info, demonoid и рядом других трекеров плюс использую для прямого файлообмена со знакомыми и коллегами.
Всего голосов 48: ↑37 и ↓11+26
Комментарии89

Interactive Fiction или Используй воображение…

Время на прочтение6 мин
Количество просмотров14K
Zork 1Я автор известной в определенных кругах платформы QSP, предназначенной для создания текстовых (sic!) игр.
Столь редкий жанр мало освещен в рунете, поэтому очень хочется исправить ситуацию и вкратце рассказать об интерактивной литературе и QSP в частности.

Это моя первая статья для Хабрасообщества, поэтому прошу сильно не пинать :)

Введение


В наше время «попкорнового» кино и не менее примитивных видеоигр, когда графическая составляющая практически полностью вытесняет шаблонный сюжет, редко какой человек не задумывается о том, чтобы попробовать что-либо другое, то, что позволит ему с интересом провести время. Некоторые, еще не забывшие, что такое книги, возвращаются к ним, а некоторые открывают для себя мир интерактивной литературы, в которой каждый может попробовать себя и в роли главного героя, и в роли создателя своего собственного мира. Достаточно лишь использовать воображение…

Читать дальше →
Всего голосов 88: ↑81 и ↓7+74
Комментарии65

Интерфейс: аналог против цифры

Время на прочтение2 мин
Количество просмотров2.8K
Если судить по комментариям к топику об организации ДЦУ МОЭСК, у многих есть сомнения, можно ли полноценно заменить обычные приборы их виртуальными аналогами. Попробую рассмотреть этот вопрос.
Форма подачи информации должна соответствовать задачам считывания показаний, а также исключать необходимость сложных количественных и логических преобразований.

Индикационные приборы


Вот пример аналогового прибора:

В чем его преимущества:
про преимущества дальше
Всего голосов 53: ↑43 и ↓10+33
Комментарии109

Легенда о «Сетуни»

Время на прочтение3 мин
Количество просмотров4K
В далёкие времена, когда деревья были ниже, а космос ещё так далёк, где-то в конце 50-х прошлого столетия, зарождалась эра вычислительных машин.
Инженеры в белых халатах творили историю.
Транзисторы, диоды, реле, ферритовые кубы… создавались первые ЭВМ.
В стенах МГУ появилась легенда. И имя ей — Сетунь.

Промышленный образец ЭВМ «Сетунь», ВДНХ, 1961 год
Продолжение
Всего голосов 96: ↑94 и ↓2+92
Комментарии178

C++0x (С++11). Лямбда-выражения

Время на прочтение13 мин
Количество просмотров305K
Буквально на днях случайно наткнулся на Хабре на статью о лямбда-выражениях из нового (будущего) стандарта C++. Статья хорошая и даёт понять преимущества лямбда-выражений, однако, мне показалось, что статья недостаточно полная, поэтому я решил попробовать более детально изложить материал.

Читать дальше
Всего голосов 75: ↑71 и ↓4+67
Комментарии83

Где наша бизнес-логика, сынок?

Время на прочтение18 мин
Количество просмотров83K
Спасибо небу за то, что в субботу шел дождь, и я это прочитал (а вы скажите спасибо за то, что перевел). В воскресенье, однако, светило солнце и форматирование текста было отложено.

Отдельное спасибо автору, за разрешение отдельной публикации.

Крайне занятная статья о том, что такое бизнес логика и где ей жить. Статье, кстати, уже три года. А я нередко встречаю системы, где код от данных не отделен. Может привести к реальному холивару.

не поддайся темной стороне силы usernаme
Всего голосов 121: ↑112 и ↓9+103
Комментарии122

Бэкапим без расходов

Время на прочтение9 мин
Количество просмотров4.5K
image
Бэкапы — это вечная проблема: то объемы данных сумасшедшие, то вообще забываешь про них. В своем предыдущем проекте dvice.ru (он пока закрыт, так что без ссылки) я допустил досадную ошибку в самом начале его запуска. Я написал небольшой крон, который в 12 часов ночи удалял всех неактивированных пользователей, зарегистрировавшихся больше 24 часов назад. Но я ошибся в запросе и потерял данные пользователей, которые зарегистрировались до первого запуска этого запроса. Слава Богу, у меня были все данные в сессиях, поэтому я восстановил всех тех, кто логинился и ставил галку на чекбоксе — запомнить меня. Обидно и глупо, но на ошибках учатся. Поэтому перед запуском своего крайнего проекта — inwhite.ru, я сделал систему бэкапов.

Бэкапы делались и копились, старые удалялись, и все было отлично. Пока внезапно я не понял, что страдаю полной фигней. Бэкапы-то я делаю, а вот забирать — не забираю. Объемы данных, лежащих на моем VPS, не такие большие, но по почте тоже особо не наотправляешься. Покупать еще один VPS и складывать туда все по FTP/SVN/CVS/SSH не особо хочется, хотя тоже вариант интересный.

До вчерашнего дня я был озадачен мыслью: а как все же забирать эти данные? И вот вечером меня осенило.
Читать дальше →
Всего голосов 101: ↑88 и ↓13+75
Комментарии41

Полиглоты в продакшн Питона

Время на прочтение15 мин
Количество просмотров7.3K
Сразу, в порядке завлекалочки. Нашей целью будет научиться писать программы-полиглоты, способные интерпретироваться сразу на нескольких языках программирования (одним, «базовым» из которых является Python). При этом, в случае интерпретации на одном из них, программа будет генерировать другую программу, функционально схожую (или даже эквивалентную) той, которая выполняется в случае интерпретации на другом языке.

И самое интересное: подходы, используемые при написании этой программы, будут интересны не столько академически, сколько практически — при разработке программы с использованием этих подходов разработка будет проще и удобнее (хоть поначалу и чуточку непривычно), а программа будет эффективнее, чем без них.

Впрочем, это звучит страшнее, чем является.

Поехали?
Всего голосов 68: ↑60 и ↓8+52
Комментарии20

Системы контроля и управления доступом

Время на прочтение9 мин
Количество просмотров39K
Как любой театр начинается с вешалки, так и любая система информационной безопасности начинается с обеспечения физической безопасности самой информационной системы независимо от её вида, размера и стоимости.

Читать дальше →
Всего голосов 20: ↑18 и ↓2+16
Комментарии6

Заметки о метапрограммировании в Python

Время на прочтение2 мин
Количество просмотров7K
По мере накопления опыта программирования на одном языке, все мы нарабатываем стандартные для себя приемы программирования. Чем выше наш опыт, тем больше количество, более разносторонни методы их работы. При переходе на другой язык, мы стараемся их воспроизвести. Иногда, такое бывает что часть из них неактуальна или неэффективна. Большую часть времени от изучения языка отнимают новые несвойственные прежним нам, приемы. Я хотел бы отметить некоторые особенности Python, которые для меня были не очевидны поначалу освоения.
Читать дальше →
Всего голосов 46: ↑40 и ↓6+34
Комментарии34

Урок астрономии (и соблазнения девушек)

Время на прочтение1 мин
Количество просмотров1.5K
Советский видеоролик о теории относительности получил одобрение среди уважаемых хабралюбителей. Поэтому выкладываю еще один! Хотите узнать больше о нашей галактике, космосе, звездах и вселенной?

Кроме того, с помощью этого видеоролика можно поучиться, как надо правильно соблазнять девушек! Это вам не “чай, кофе, потанцуем?” — наука нужна, наука! Смотрим и учимся… :)

Читать дальше →
Всего голосов 14: ↑9 и ↓5+4
Комментарии10

Win32 GUI Automation при помощи pywinauto

Время на прочтение1 мин
Количество просмотров10K
По роду своей предыдущей работы (QA) пришлось познакомиться с чудесным языком Python и, в частности, с модулем автоматизации pywinauto. PyWinAuto чудесен при автоматизации тестирования gui приложений и просто автоматизации рутинных gui процессов.
Данный пост расскажет и покажет как использовать модуль pywinauto для автоматизации gui операций.
Читать дальше →
Всего голосов 4: ↑4 и ↓0+4
Комментарии5

ChatterBlocker или Вон из моей головы!

Время на прочтение1 мин
Количество просмотров5.7K
Как-то привык я к тому, что предметы вокруг меня должны издавать звуки. Музыка это, или просто шум системника — не суть. Лишь бы тишина на уши не давила.

Но если шум системника сам по себе довольно ровный, то музыка (особенно вокальные треки) может здорово отвлекать.

А если ты не дома, а в офисе? Да еще с шумными соседями а–ля «Добрый день, — Марина, отдел закупок, мы бы хотели...» и в таком духе. Концентрация «магическим» образом улетучивается, оставляя после себя стресс и порой несделанную в срок работу.

Есть ли выход?

Выход есть!
Всего голосов 44: ↑36 и ↓8+28
Комментарии56

Персональный зоопарк или немного о Pygame — Часть 1

Время на прочтение7 мин
Количество просмотров40K
image
Для тех, кто не в курсе: Pygame — это очень и очень неплохой фреймворк для разработки игр на языке Python. Причем поддерживается не только работа с 2D и 3D, но и при желании можно установить биндинги ко многим популярным графическим и физическим движкам. Кстати, Pygame вовсе необязательно использовать именно для игр, можно также создавать и программы с необычным интерфейсом, например, какой-нибудь трехмерный фронтенд к базе данных.
Вот мне, собственно, и захотелось рассказать об основных принципах работы с этим фреймворком, мало ли, может, пригодится кому :)
Ну что, погнали?
Всего голосов 70: ↑69 и ↓1+68
Комментарии37

Контрастная схема Eclipse/pyDev под TextMate

Время на прочтение4 мин
Количество просмотров6.6K
Проблема:
при запуске Эклипсы на экране с высоким разрешением — ничего не видно, а внимание отвлекается на непонятные элементы интерфейса.
Цветовая раскраска для разработки под Python кажется неинформативной.
Особенно актуально для людей с пониженным зрением, работающих без очков на мониторах с разрешением 1680х1050 и выше.

Задача:
1) найти скин, который бы визуально увеличивал значимые части интерфейса (названия табов, элементы списков)
2) а также визуально уменьшал рюшечки, не несущие смысловой нагрузки
3) подобрать броские и понятные цвета и шрифты редактора
4) желательно чтобы всё вместе это напоминало (хотя бы отдаленно) редактор textmate

На решение была потрачена пара часов перебора различных вариантов методом тыка.
Описание поможет вам сэкономить эти несколько часов :)

Читать дальше →
Всего голосов 32: ↑25 и ↓7+18
Комментарии65

10 приемов, разрушающих хрупкую красоту кода

Время на прочтение19 мин
Количество просмотров102K
Статья приводится в сокращении из-за ограничения на объем материала.

Для меня программирование — это не только технология, но и, во многом — искусство. И, поэтому, большое значение имеет красота кода.

Последние несколько лет я собирал приемы программирования, разрушающие в программном коде его утонченную красоту:
  1. Объявление всех переменных в начале программы;
  2. Возврат результата функции через ее параметр;
  3. Отсутствие локальных функций;
  4. Отсутствие else if;
  5. Использование параллельных массивов;
  6. Хранение размера массива в отдельной переменной;
  7. Доступ к свойствам объекта через obj.getProperty() и obj.setProperty(value);
  8. Использование рекурсии для вычисления факториалов и Чисел Фибоначчи;
  9. Отсутствие именованных параметров функции;
  10. Невозможность объявления объектов «на лету».
Наверняка, в некоторых местах вы будете со мной несогласны — ведь чувство красоты у всех разное.


Объявление всех переменных в начале программы


В двух словах:

Переменные должны объявляться в начале логического блока, в котором они используются, а НЕ в начале функции или программы.


Читать дальше →
Всего голосов 402: ↑324 и ↓78+246
Комментарии411

Приручение py-rrdtool

Время на прочтение4 мин
Количество просмотров13K
Как говорится в одной древней мудрости: можно вечно наблюдать три вещи: как горит огонь, как течёт вода и как рисует графики rrdtool. Этот пост как раз о последнем.
И так, что же такое rrdtool? rddtool — замечательная утилита, которая позволяет управлять данными, хранимыми в формать rrd (round-robin database). Данный формат примечателен тем, что изначально предназначен для хранения периодичной информации, причём так, что размер самой БД получается фиксированным (довольно небольшим) независимо от количества данных. При этом сохраняется возможность получать отчёты за продолжительные отрезки времени с произвольной точностью. Наибольшее распространение данная система нашла в системах мониторинга, где, как говорится, лучше один раз увидеть картинку, чем 7 раз прочитать логи. В конце статьи Вы сможете получить нечто, похожее на

пример


Читать дальше →
Всего голосов 30: ↑29 и ↓1+28
Комментарии12

Munin — мониторинг сети это просто!

Время на прочтение3 мин
Количество просмотров111K

В жизни каждого системного администратора рано или поздно наступает момент, когда глаз и рук уже не хватает уследить за всеми серверами, то там, то там возникают какие-то проблемы, а для решения их очень хочется узнать что же было «до этого». И именно здесь на выручку приходят они — вел
икие и ужасные системы мониторинга. Долгое время я пользовался Nagios, и до сих пор, при всём удобстве, иначе как монстрообразным назвать не могу. В итоге реально использовались лишь 10% возможностей этой прекрасной системы. Всё изменилось, когда я наткнулся на Munin — прекрасное решение для мониторинга небольших сетей.
Обзор системы
Всего голосов 37: ↑33 и ↓4+29
Комментарии42

Обзор LLVM

Время на прочтение13 мин
Количество просмотров86K
LLVM (Low Level Virtual Machine) — это универсальная система анализа, трансформации и оптимизации программ или, как её называют разработчики, «compiler infrastucture».

LLVM — не просто очередной академический проект. Его история началась в 2000 году в Университете Иллинойса, а теперь LLVM используют такие гиганты индустрии как Apple и Adobe. В частности, на LLVM основана подсистема OpenGL в MacOS X 10.5, а iPhone SDK использует GCC с бэкэндом на LLVM. Apple является одним из основных спонсоров проекта, а вдохновитель LLVM — Крис Латтнер — теперь работает в Apple.

В основе LLVM лежит промежуточное представление кода (intermediate representation, IR), над которым можно производить трансформации во время компиляции, компоновки (linking) и выполнения. Из этого представления генерируется оптимизированный машинный код для целого ряда платформ, как статически, так и динамически (JIT-компиляция). LLVM поддерживает генерацию кода для x86, x86-64, ARM, PowerPC, SPARC, MIPS, IA-64, Alpha.

LLVM написана на C++ и портирована на большинство *nix-систем и Windows. Система имеет модульную структуру и может расширяться дополнительными алгоритмами трансформации (compiler passes) и кодогенераторами для новых аппаратных платформ. Пользовательский фронтенд, как правило, линкуется с LLVM и использует C++ API для генерации кода и его преобразований. Однако LLVM включает в себя и standalone утилиты.

Для тех, кто не без оснований считает C++ не лучшим языком для написания компиляторов, с недавних пор в LLVM включена обертка API для OCaml.

Чтобы понять, что можно сделать с помощью LLVM, и на каком уровне придётся работать, давайте разберёмся,
что из себя представляет LLVM IR.
Всего голосов 52: ↑51 и ↓1+50
Комментарии25

Памятка дизайнеру сайтов

Время на прочтение10 мин
Количество просмотров245K
Вторая версия статьи, расширенная и дополненая.

Большая часть готовилась для моего выступления на «РИТ: Клиентские технологии», куда я, к сожалению, не доехал.

 

Памятка дизайнеру сайтов

К сожалению огромная армия даже опытных, «модных» и эффектных дизайнеров забывают, что результатом их творчества должен быть сайт, а не только «супер-скриншот» годный только для портфолио.

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

Читать дальше →
Всего голосов 453: ↑444 и ↓9+435
Комментарии231

Информация

В рейтинге
2 810-й
Откуда
Тульская обл., Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Fullstack Developer