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

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

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

calendarLite плагин

Время на прочтение3 мин
Количество просмотров1.9K
В одном из моих проектов мне понадобился простой javascript календарь. Но из существующих jQuery плагинов, только один «почти» соответствовал мои требованиям. Решил написать свой плагин — проба пера calendarLite plugin.

Внешний вид calendarLite
Читать дальше

Язык — отражение образа мыслей его автора

Время на прочтение2 мин
Количество просмотров1.6K
Цитата из книги «Learning Perl, 5th edition»:
In fact, a big part of learning Perl is actually learning how Larry thinks. Therefore, once you can think like Larry does, you know what Perl should do. But while you’re learning, you’ll probably need to look into the documentation.

Перевод:
Вообще-то, большая часть в изучении языка Perl — это изучение того как Ларри (автор языка) мыслит. Следовательно, как только вы сможете мыслить также, как это делает Ларри, вы будете знать, что должен делать Perl в каждом случае. Но пока вы учитесь, следует порой заглядывать в документацию.

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

Perl


«There's more than one way to do it.»
«Simple things should be simple, and hard things should be possible»
«Perl is a mess and that's good because the problem space is also a mess.»
«We will encourage you to develop the three great virtues of a programmer: laziness, impatience, and hubris.»
«Perl is designed to let you program naturally. Whatever you think natural means.»
«Perl is unique, not just among scripting languages, but among computer languages in general. It's the only computer language consciously and explicitly designed to be postmodern. All other computer languages are still stuck in the modern era to some degree.»
Larry Wall

«Perl Makes You Happy!»
Tim Bunce

Python


Beautiful is better than ugly.
Explicit is better than implicit.
Читать дальше →

Java: Socks 4 Proxy работа с неблокирующими сокетами

Время на прочтение21 мин
Количество просмотров24K
Начиная с версии 1.4 в j2se появился package java.nio, который позволяет работать с сокетами в неблокирующем режиме, что зачастую повышает производительность, упрощает код и даёт дополнительные возможности и функционал. А начиная с версии j2se 1.6 на серверах под упралением ОС линукс(kernel 2.6) реализация класса Selector выполнена с использованием epoll, что обеспечивает максимально возможную производительность.

В примере описанном ниже я постараюсь продемонстрироватьь основные принципе работы с неблокирующими сокетами, на примере вполне реальной задачи – реализации Socks 4 прокси сервер.
Описание и исходный код

Были получены исходники 3300 глобальных интернет-проектов

Время на прочтение5 мин
Количество просмотров278K
Пару месяцев назад нами (2Товарища и Антон Исайкин) была обнаружена уязвимость, присущая в основном большим интернет-проектам (вроде Рамблера, Мейла, Яндекса, Оперы и пр.). Удалось получить доступ к файловым структурам известнейших сайтов (в общей сложности 3320 сайтов) и в ряде случаев их полные исходные коды.
Читать дальше →

(Зло)употребление C# 4.0 Dynamic – Бестиповое Лямбда-Исчисление, Нумералы Чёрча, и все-все-все… (ч.1)

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

Введение


Воскресное утро, время для еще одного эпизода в серии Безумные Воскресения. Еще раз в одной категории с риском разрыва мозгов, но ведь это как раз то, что нам нравится, не так ли? На этот раз мы рассмотрим бестиповое лямбда-исчисление в C#. Но погодите, разве C# не типизированный язык? Действительно. Но значит ли это, что все, что вы делаете на C# должно быть статически типизировано? Не обязательно: типизация присутствует в языке как инструмент, который вы можете либо не трогать, либо применить. В этом топике мы рассмотрим как новое ключевое слово dynamic из C# 4.0 под несколько странным углом…
Читать дальше →

Gopher, вы слышали это слово?

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

Gopher


«To Gopher, the world is just one big file system»

Gopher — один из протоколов интернета, был популярен в начале 1990-х, впоследствии его роль уменьшилась. В основном с повсеместным развитием WWW. Ошибочно считается (а именно так написано в русской и английской википедии), что протоколы Gopher и HTTP были своего рода конкурентами, это и привело к уменьшению доли одного и увеличению другого. Нет, изначально Gopher был разработан для своеобразной замены FTP, протокола, который был разрабтан еще в 1960-х годах.
Читать дальше →

Чего не хватает 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 и рядом других трекеров плюс использую для прямого файлообмена со знакомыми и коллегами.

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

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

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

Введение


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

Читать дальше →

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

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

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


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

В чем его преимущества:
про преимущества дальше

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

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

Промышленный образец ЭВМ «Сетунь», ВДНХ, 1961 год
Продолжение

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

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

Читать дальше

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

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

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

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

не поддайся темной стороне силы usernаme

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

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

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

До вчерашнего дня я был озадачен мыслью: а как все же забирать эти данные? И вот вечером меня осенило.
Читать дальше →

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

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

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

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

Поехали?

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

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

Читать дальше →

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

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

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

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

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

Читать дальше →

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

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

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

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

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

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

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

Выход есть!

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

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

Информация

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

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

Fullstack Developer