Как стать автором
Обновить
0
max7 @max7read⁠-⁠only

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

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

RSA, а так ли все просто?

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

Прелюдия


Доброго времени суток, уважаемые читатели.
Скорее всего, большинству из вас известно, что из себя представляет асимметричный алгоритм шифрования RSA. В самом деле, этому вопросу по всему рунету и на этом ресурсе в частности посвящено столько статей, что сказать о нем что то новое практически невозможно.
Ну что там, ей богу, можно еще придумать и так все давным-давно понятно. Рецепт приготовления прост:
Два простых числа P и Q.
Перемножить до получения числа N.
Выбрать произвольное E.
Найти D=E-1(mod(P-1)(Q-1)).
Для шифрования сообщение M возводим в степень E по модулю N. Для дешифрования криптотекст C в степень D по все тому же модулю N. Все криптопримитив готов. Берем и пользуемся, так? На самом деле, не так. Дело все в том, что это и в самом деле не более чем криптопримитив и в реальном мире все самую чуточку сложнее.
Читать дальше →

О Scala для тех, кому мало Java, и не только

Время на прочтение4 мин
Количество просмотров16K
Прогресс не стоит на месте, люди ищут новые решения, и на JVM появляется всё больше интересных языков. Но «ядро» JVM сообщества — народ суровый, привыкший к серьёзным стандартам, и с высокими требованиями. Поэтому большинство новых языков так и висят «на периферии».

От других языков на JVM Scala отличается действительно основательным подходом — над языком работает лаборатория мощнейшего европейского института EPFL во главе с профессором Мартином Одерски, который также известен как дизайнер системы generic-ов из Java 1.5. Конечно, это не сравнить по объёму поддержки с серьёзными коммерческими конторами в роде Sun или Microsoft, поэтому язык развивался медленно и «пошёл в дело» совсем недавно:
scala Job Trends graph

Что в нём интересного?
Читать дальше →

Решение проблемы с вертикальной синхронизацией в видео на Ubuntu 10.04

Время на прочтение2 мин
Количество просмотров48K
Этот топик я писал в песочницу, однако благодаря @BSDaemon, я получил инвайт еще до его (топика) публикации.
Продолжительное время Ubuntu я обходил стороной. Но недавно решил поставить. Все хорошо, красиво и вроде бы стабильно, но столкнулся я с одной неприятностью: при просмотре видео в полноэкрнном режиме, при ярких динамичных сценах, картинка будто бы делиться на части, и эти части не состыковываются между собой:

image
Сразу оговорюсь: у меня видеокарта GeForce, поэтому проблема, а также ее решение будет актуальна для пользователей видеокарт компании Nvidia. Подобный рассинхрон появляется только при включенном Compiz. По скольку Compiz меня радует не только красотой, но и удобством, отказываться от него я не собирался, вследствие чего стал искать решение.
Читать дальше →

Деревенские заметки

Время на прочтение4 мин
Количество просмотров3.2K
Привет, друзья!

Уже несколько дней живу в деревне – радуюсь солнышку и теплу.
Вот несколько интересных наблюдений о деревне.

Сегодня купил в местном сельпо мангал – неплохой такой мангал и шесть шампуров к нему обошлись в 190 рублей. Коммунизм уже наступил.

Местная речка оккупирована продленкой в школе и местными девушками – мальчиков почти нет. На купальники и прочую ерунду многие не обращают внимания – купаются и загорают топлесс или просто в чем мать родила. На меня посматривают многозначительными взглядами.

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

В деревне два магазина – один продает продукты, а второй продукты и водку. Первый работает до шести, второй – до 11.
Читать дальше →

Индустриальная революция. Часть 5. Зачем нужны компании?

Время на прочтение6 мин
Количество просмотров16K
imageЗавершающая часть увлекательной статьи журнала Wired «In the next Industrial Revolution, Atoms are the New Bits». Ранее вы могли прочитать о Rally Fightere, виртуальных мини-фабриках, 3D принтере за 1000$, а также узнать, как построить свою мечту.

В середине 30-х годов прошлого столетия Рональд Куз, на то время выпускник Лондонской Школы Экономики, задался вопросом, который, на первый взгляд, может показаться глупым: «Зачем нужны компании?» Зачем нам заявлять о верности какому-то учреждению и собираться под одной крышей для того, чтобы создать что-то ценное? Его ответ: для минимизации операционных затрат. Когда у людей есть единая цель, установлены роли, ответственности и средства общения, очень просто создать что-то ценное. Вы просто подходите к человеку из соседней комнаты чтобы попросить его сделать свою работу.

Но несколько лет тому назад Билл Джой, один из основателей Sun Microsystems, обнаружил ошибку в модели Куза. «Не важно кто вы, большинство умных людей работает на кого-то другого», — отметил Джой. Конечно, это всегда было правдой, но раньше очень большое значение имело то, что Вы были в Детройте, а тот, кто умнее Вас, находился в Дакаре. Вы были здесь, а он был там и точка! Однако, по мнению Джоя, теперь все меняется. С появлением Интернета, Вам не нужно больше располагаться в соседней комнате. Вы можете нанять лучшего человека прямо из Дакара!
Читать дальше →

Установка node.js на Linux, FreeBSD, Windows

Время на прочтение6 мин
Количество просмотров85K
node.js — серверный асинхронный Javascript, превосходный инструмент для создания серверной части COMET приложений, в частности, для игрушек, чатов, и других высоконагруженных проектов, использующий синтаксис Javascript, прекомпилируемый в машинный код, работающий на скорости, сравнимой с кодом на C++, очень быстрый, способный держать 10 — 12 тысяч подключений, и не создающий отдельного процесса/не интерпретирующий себя заново/не запускающий процесс при каждом новом клиенте. Использует в качестве основы V8 — движок Javascript от Google. Удобные возможности, можно установить значение переменной при одном посетителе, и считать это значение при ответе другому.
Обращаю внимание на то, что если вы не программировали, например, на Python или Ruby, только на PHP, не обходите его стороной, это не ещё один незнакомый язык. И в этом его преимущество — Javascript — знакомый язык, особенно для тех, кто программировал на PHP+Javascript, но PHP не позволял очень многих вещей, особенно в связке с Apache, например, аплоад файлов с полосой загрузки (без Flash), возможность низкоуровневого управления сетью (возможность написать, например, клиента или сервер Mysql или прокси-сервер вроде nginx).
О гибкости языка говорит тот факт, что расширения для работы с MySQL, например, написаны на самом Javascript.
Я планировал написать статью с описанием этой замечательной системы, с примерами, но на момент чтения читателю хорошо бы иметь под рукой установленную версию node.js. Поэтому этот пост о том, как установить node.js, в том числе и на Windows, что актуально в связи с недавним появлением порта под cygwin. (Да, есть информация о том, где скачать node.exe)
Читать дальше →

Smokescreen — «Flash-плеер, написанный на Javascript»

Время на прочтение3 мин
Количество просмотров2.3K
Увидел недавно топик-ссылку Smokescreen — конвертер flash в html5\js, решил сделать перевод той информации, которую я уже читал в сети про этот новый инструмент. Если коротко: Smokescreen — новый проект с открытыми исходниками, направленный на преобразование Flash в JavaScript/HTML5 для лучшего взаимодействовия с веб-страницей там, где раньше это было невозможно.
С его помощью вы можете расширить поддержку своего проекта на новые платформы без изучения новых инструментов, Flash автоматически преобразуется в JavaScript/HTML5. Smokescreen будет выпущен под open source лицензией и будет распространяться бесплатно. Стоимость поддержки и обслуживания будет низкой, чтобы вы могли убедиться, что Smokescreen работает именно так, как вам необходимо. Библиотека даст вам широкий выбор инструментов для разработки, включая разработку на JavaScript, без использования ActionScript, и разработку с подключением Flash к HTML-страницам проекта.
Читать дальше →

Немного о развитии общения в сети

Время на прочтение6 мин
Количество просмотров7.8K
Участвуя в организации фестиваля Chaos Constructions, я в том числе восстановил из архива свою старую BBS.
И в процессе ее настройки и демонстрации посетителям фестиваля я все чаще чувствовал нелогичность того, куда нас привело развитие сетевых коммуникаций.

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

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

Советы программисту-дизайнеру интерфейсов

Время на прочтение5 мин
Количество просмотров11K
Нет сложным интерфейсам

Проблема


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

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

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

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

Project Offset

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


Вступление


Недавно наткнулся на ютубе на несколько тех. демок движка еще неизвестной и не анонсированной игры под кодовым названием «Project Offset» с комментариями авторов.

Постов про этот проект на Хабре я не нашел — решил поделиться с уважаемой аудиторией.
Настоятельно рекомендую смотреть в HD качестве.

Увиденное для меня было легким шоком — такого я просто не ожидал увидеть в игре в ближайшие 5-7 лет. Дело даже не в том, что выглядит почти фотореалистично, а в том, какие фичи предлагают нам авторы.

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

Комментарии в видео на английском — их я переведу, а после — прокомментирую увиденное с моей точки зрения. На объективность я не претендую — не играл в игры уже года три, но с 3д-графикой знаком более-менее близко (на уровне любителя/хобби).
Читать дальше →

История сумасшествия или свой морской бой на BrainFuck`e

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

Доброго времени суток, хабралюди. Перед Вами самадиогностика безнадёжного BrainFuck больного.
Те, кто всё понял из названия и не хотят читать весь пост целиком могут скачать игру и BFDev и сразу перейти под кат в конец поста к разделу «Как играть». В посте рассказано как я заболел BrainFuck`ом, а также описан процесс создания игры «Морской бой» на этом замечательном языке.

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

Объединение браузеров в непотопляемый трекер

Время на прочтение6 мин
Количество просмотров4.2K
vseisk-p2p Одноранговые сети стали мощнейшей силой в современном интернете. Клиентские программы p2p-сетей объединяют компьютеры в гигантские сетевые «организмы», причем создают, поддерживают и контролируют эти сети сами конечные пользователи. Сегодня на каждом компьютере практически всегда открыт браузер. Объединяя браузеры в p2p-сеть получаем распределенную систему, которая всегда под рукой и которая может быть полезна для решения многих насущных задач.

Недавно я рассказывал о расширении Firefox, которое объединяет браузеры в p2p-поисковую сеть Всеиск. Теперь эта сеть освоила дополнительные функции: публикация/поиск торрентов и трекер для BitTorrent. Прежде чем перейти к подробному описанию, я в двух словах поясню постановку задачи.

Важнейшими узлами p2p-сети BitTorrent являются торрент-сайты. Через них пользователи находят раздачи, через них осуществляется координация текущих раздач. Однако торрент-сайты оказываются не только важнейшими, но и самыми слабыми точками BitTorrent. Уязвимость заключается прежде всего в том, что соответствующий сервер можно заблокировать, запретить, отобрать и т.п.

Если распределить диспетчерские функции по принципу p2p-сети, то это разом сделает координационный сервис неподвластным ни техническим, ни административным угрозам. Я решил сделать p2p-сервис, который будет реализовывать обычные функции торрент-сайта (поиск торрентов и диспетчер раздач), причем, при взаимодействии с клиентской программой, сервис будет выглядеть как обыкновенный трекер.

В этой статье я сначала коротко расскажу уважаемому собранию как все это работает технически, затем более развернуто покажу на картинках как пользоваться сервисом.
Читать дальше →

Введение в DSL. Часть 1 — Проблематика проектирования и кодирования

Время на прочтение7 мин
Количество просмотров34K
На протяжении нескольких десятилетий стоит задача поиска повторяемого, предсказуемого процесса или методологии, которая бы улучшила продуктивность, качество и надежность разработки. Одни пытались систематизировать и формализовать этот, по-видимому, непредсказуемый процесс. Другие применяли к нему методы управления проектами и методы программной инженерии. Третьи считали, что без постоянного контроля со стороны заказчика разработка ПО выходит из-под контроля, что влечет за собой увеличение временных и финансовых затрат.
Информатика как научная дисциплина предлагает и использует на базе методов структурного программирования технологию надежной разработки программного обеспечения, используя тестирование программ и их верификацию на основе методов доказательного программирования для систематического анализа правильности алгоритмов и разработки программ без алгоритмических ошибок.
Данная методология направлена на решение задач на ЭВМ, аналогичной технологии разработки алгоритмов и программ, используемой на олимпиадах по программированию отечественными студентами и программистами с использованием тестирования и структурного псевдокода для документирования программ в корпорации IBM с 70-х годов.
Методология структурного проектирования программного обеспечения может использоваться с применением различных языков и средств программирования для разработки надежных программ любого назначения.
Однако при использовании классического подхода к разработке возникают проблемы, описанные под хабракатом:
Читать, какие

Rutracker.Org Addons: расширение Firefox для Rutracker.Org

Время на прочтение2 мин
Количество просмотров15K
image

Исключительное богатство и динамика главного трекера страны имеют свою оборотную сторону: чувствуется нехватка некоторых удобств, привычных для других ресурсов. Нет почтовых уведомлений, невозможно подписываться на комментарии и автоматизировать оперативное получение новостей. Новорождённое RSS тоже имеет свои ограничения: задержка в 1 час, дробность (для каждого раздела приходится держать отдельную ленту). Расширение призвано помочь решению этих проблем на клиентской стороне.
Читать дальше →

Синдром многорукого Шивы: Знания vs Навыки

Время на прочтение7 мин
Количество просмотров18K
В продолжение предыдущего поста.


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

Путь о котором я говорю — путь «многорукого Шивы». Путь множества навыков и относительно малого знания. Те, кто переключился на путь знания идут вверх. Те, кто остался на пути навыков — остаются примерно там же, где и были.
Читать дальше →

speedtest.net via C++

Время на прочтение10 мин
Количество просмотров6.9K
Весь нижеприведенный код — выдержка из одного моего недавнего проекта, в рамках которого было необходимо определять скорость download и upload. Изобретать велосипед было неохота, посему возникло желание воспользоваться сервисом www.speedtest.net, как наиболее уважаемым и работоспособным из сервисов такого типа. Впрочем, как показала практика, он оказался вполне недружелюбным и некий велосипед таки пришлось изобрести.

Итак, добро пожаловать под кат.

Тестируем ERP систему. Часть 2

Время на прочтение7 мин
Количество просмотров7.3K
Вторую часть, пожалуй, начну с ответов на некоторые вопросы по прошлой части. Некоторые читатели обвинили меня в бессистемности, сказав, что вот, мол, непонятно чем тут занимается, какой-то НДС в бланках смотрит. Нет, чтобы думать о более высоких материях. Понимаете, мне эти высокие теории и материи… Я внедрением уже 10 лет как занимаюсь и хочу, чтобы рано или поздно любое внедрение стало простым и формализованным процессом. Ни у кого не возникает вопрос, когда нужно взять и настроить сеть, потому что ее просто берут и настраивают, и всем понятно, как именно это нужно делать. Вот и при внедрении ERP нужно стремиться к тому же.

У нас ежемесячно выходит новая версия. Она проходит жесткий тестинг перед тем, как ее поставят клиентам. Это такая инструкция на 6 листах. И версия не выходит пока все не будет тип-топ. Тестер почти не думает, просто тестирует по инструкции и все. Проколы, конечно, случаются, но не часто, да и то мелкие. После каждого прокола карта тестирования дорабатывается. Вот и то тестирование, о котором я тут толкую, тоже должно проходить по аналогичному принципу. Есть ряд простых, мелких, но жизненноважных тестов. Просто делаешь их и смотришь на результат. Прошло тестирование успешно, значит можно продолжать разговор о внедрении, разработке ТЗ и о более высоких материях. Не прошло тестирование – до свидания. Все!

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

Тестируем ERP систему. Часть 1

Время на прочтение8 мин
Количество просмотров14K
За последние полгода я натестировался ERP систем по полной программе. Участвовал в обзоре российского рынка ERP систем. Интересные вещи всплывали, признаюсь я вам. И ладно, если бы эти интересности всплыли, если бы я во время обзора представлялся от имени редакции издания, которое этот обзор и проводило. Но мы намеренно сделали так, что представлялся я от имени совершенно реального клиента. То есть побывал в шкуре самого натурального клиента и увидел все своими глазами. Подробности обзора рассказывать не буду, их можно будет почитать на страницах издания (как выйдет обзор, выложу пост). Вывод прост – надо быть готовым к тому, что тебя будут пытаться «немножко обмануть». Попробую дать некоторые рекомендации, чтобы этого не случилось.

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

Ну, во-первых, не надо думать, что этот вопрос можно решить за пару часов. На качественное тестирование и изучение продукта в сопровождении представителя уходит 6-10 часов. У меня.
Читать дальше →

Тестируем ERP-систему. Часть 3

Время на прочтение6 мин
Количество просмотров4.5K
Продолжаем тестировать ERP систему. Первая часть здесь, вторая часть здесь.
Сегодня попробуем разобраться с производством и проектами. А в следующей части поговорим уже об отчетности и всяких инструментах для принятия решений.
Начнем, пожалуй с проектов. С ними более понятно.
Сначала определимся с понятием. Могу ошибаться, если что поправите меня.
Читать дальше →

Задача о рюкзаке: а что же внутри?

Время на прочтение3 мин
Количество просмотров29K
Достопочтенный SergeyACTIVITI в своём посте поведал нам про такую полезную вещь, как задача о рюкзаке, решение которой с успехом реализовано в решателях COIN-OR или GLPK. А что же внутри?

Итак, пусть у нас есть рюкзак объёма W, и список из n вещей, у каждой из которых есть объём v[i] и стоимость c[i], и каждую из которых можно брать сколько угодно раз. При этом все объёмы и все стоимости будут положительными и целыми. Как же работает алгоритм?

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

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность