Search
Write a publication
Pull to refresh
0
max7 @max7read⁠-⁠only

User

Send message

Найдено 48-е простое число Мерсенна

Reading time5 min
Views72K
Математики из распределённого проекта по поиску простых чисел GIMPS объявили об обнаружении нового простого числа Мерсенна. Это важное событие для математического сообщества, потому что до сих пор было известно только 47 таких чисел, последнее было найдено в июне 2009 года.

48-е простое число Мерсенна — 257.885.161-1, с 17.425.170 десятичными разрядами. См. полную запись числа в текстовом формате.

Числа Мерсенна имеют вид 2n-1, где n — натуральное число. Простые числа Мерсенна являются самыми большими простыми числами, известными науке. Предыдущий мировой рекорд принадлежал числу 243.112.609-1, имеющему 12.978.189 десятичных разрядов.
Читать дальше →

Сражение при Asakai: как EVE Online справляется с гигантскими битвами

Reading time3 min
Views103K
Битва у Asakai стала второй по количеству столкнувшихся кораблей в истории EVE Online (об этом прекрасно написал комрад madmaxcorp, там же вы можете посмотреть без преувеличения галактической красоты видео очевидца). История сражения интересна сама по себе (человеческая ошибка), но нас традиционно больше интересует что же было с серверами игры во время этой сумасшедшей битвы, как CCP (создатель EVE Online) удается справляться с такими нагрузками?

«Наша команда поддержки (игровые мастера, GMs) следит за гигантскими битвами, подобными этим», — говорит один из разработчиков. «У нас есть веб-страница со статусом кластера, на которой появляются большие красные цифры в случае перегрузки нод в сражениях. Так что довольно легко видеть что происходит». Более интересно то, что стоит за этими цифрами.

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

Насколько плохим код должен быть?

Reading time6 min
Views74K
Эрик Липперт — ветеран Microsoft, проработавший в компании 16 лет и стоящий за разработкой VBScript, JScript и C#.

На прошлой неделе в комментариях к одной из статей разгорелся спор о роли низкоуровневой оптимизации в программировании, и я вспомнил относящуюся к этому статью Эрика. Она была написана в конце 2003, и хотя реалии с тех пор несколько изменились — принципы остались теми же самыми. Можете мысленно заменить ASP и VBScript на PHP, JavaScript, или на другой скриптовый язык по вашему вкусу.

Эту статью я уже пытался перевести в 2005, но русский текст тогда получился неуклюжий, так что этот перевод — новый и ранее не публиковался, в соответствии с требованиями НЛО. В Переводе блога Эрика Липперта этого текста тоже нет — наверное, для них он слишком стар.


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

Например, за семь лет в Microsoft я получил десятки вопросов, аналогичных по своей сути этому, заданному в конце 1990-х:
У нас есть код на VBScript, и в одной часто вызываемой функции мы определяем оператором Dim несколько переменных, которые нигде в функции не используются. Не замедляется ли каждый вызов функции из-за объявления этих переменных?
Какой интересный вопрос! В компилируемом языке, таком как Си, объявление локальных переменных общим размером n байт всего лишь вычитает n из указателя стека при входе в функцию. Если n будет чуть больше или чуть меньше, затраты времени на вычитание никак не изменятся. Наверное, в VBScript точно так же? Оказалось, что нет! Вот что я написал автору вопроса:
Читать дальше →

Формальное описание аппаратного микроядра L4

Reading time2 min
Views16K
Первые версии микроядра L4 были настолько малы, что могли целиком поместится в кэше современных процессоров. Вероятно, этот факт породил миф о микроядре L4: «Оно быстрое, потому что маленькое». Даже в настоящее время нередко можно услышать эту версию. Так можно ли разместить микроядро в процессоре и как это сделать?
Есть мнение, что поместить микроядро в процессор - вполне выполнимая задача

R’ha — короткометражный анимационный фильм немецкого студента, открывший ему двери в Голливуд

Reading time2 min
Views240K
Удивительным образом в рунете почти нет информации об этом ярком событии, но я сейчас это исправлю. Шутка ли, студент первого курса Высшей школы медиа-дизайна из Берлина, благодаря своему короткометражному анимационному фильму под названием R`ha получил контракт в Голливуде!



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

«В его работе присутствуют кадры, достойные фильма с бюджетом в 150 миллионов долларов» — пишет продюсер фильма «Сезон ураганов».

Но по порядку.
Читать дальше →

Опыт передачи файлов большого объема по защищенному протоколу из 1С на сайт

Reading time5 min
Views21K
передача файлов большого объема по защищенному протоколу из 1С на сайт
Во время создания очередной B2B-системы на этапе интеграции 1С: Предприятие 8.2 с web — интерфейсом возникла необходимость безопасной передачи файлов больших размеров из 1С в web.
Для решения этой задачи был выбран протокол SFTP, как надежный и не имеющий ограничений по размеру передаваемого файла.
Во встроенном языке 1С: Предприятие 8.2 отсутствуют функции для передачи данных через SFTP, поэтому пришлось искать прикладные средства.
Читать дальше →

Проблемы со списком сайтов Роскомнадзора. Операторы связи, будьте бдительны

Reading time3 min
Views43K
Привет, хабр.


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

Проблемы с формой и содержанием списка сайтов Роскомнадзора

Reading time5 min
Views8.5K
На Хабре уже было несколько статей по поводу трудностей, связанных с получением доступа к списку запрещенных сайтов, с его обновлением и использованием. Эта статья — логическое продолжение ранее высказанной другими (в том числе в комментариях) критики. Сразу оговорюсь, что я не являюсь сотрудником никакого провайдера.

Итак, предположим, что вы собрались предоставлять клиентам услуги доступа в Интернет, или, проще говоря, стать провайдером. Чтобы добиться лояльности клиентов, вы решили купить навороченную DPI-систему, блокировать запрещенную информацию по URL'ам и не блокировать ничего лишнего. Никакой фильтрации по доменам и IP, только по URL'ам! Все юридические, бюрократические, этические и денежные вопросы улажены, остались технические. Осталось только взять готовую автоматическую качалку списка запрещенных сайтов и настроить автоматическую загрузку этого списка в DPI-систему в том формате, который она понимает. Т.е. написать скрипт-конвертер. Так вот, вынужден вас разочаровать — написать работающий конвертер не получится. Не получится до тех пор, пока в Роскомнадзоре не пошевелятся и не поменяют формат данных, а также не исправят явные ошибки в существующих элементах списка.
И вот почему.

Миникомпьютер из роутера с OpenWRT: пишем USB class-driver под Linux

Reading time20 min
Views79K

Добрый день, уважаемые хабровчане. В прошлой статье мы с вами разработали простую USB-видеокарту на базе STM32F103 и китайского дисплейного модуля на контроллере ILI9325.
Проверяли мы его из юзерспейса, при помощи LibUSB. Ну что ж, пришло время нам написать свой собственный драйвер, который позволит делать все то же самое, но из-под Linux и без дополнительных библиотек. Этот драйвер мы внесем в дерево исходников OpenWRT и он поселится там наравне со всеми остальными.
Начнем.
Читать дальше →

ReactOS 2012

Reading time3 min
Views9.5K
image

ReactOS: с ноября по декабрь


С моего последнего поста на хабре про выступление Алексея Брагина на полуфинале Зворыкинского проекта прошёл уже месяц. В ReactOS с тех пор произошло достаточног много важных изменений, заслуживающих внимания.
Марат Каратов, Алексей Брагин и Речицкий Александр в Гипер Кубе, Сколково

Участие в Конвенте в Сколково


Организаторы Зворыкинского проекта пригласили нас и на завершающее событие — Инновационный Конвент. Примечателен он тем, что проходил в самом Сколково, в новом здании “Гиперкуб”, поэтому мы решили обязательно посетить это мероприятие не смотря на 26-ти градусный мороз (В НСК в это время было -45, так что нам грех жаловаться на погоду).
За подробностями - под кат

10 дистрибутивов Linux специального назначения

Reading time2 min
Views224K
Прелесть Linux в том, что можно сделать дистрибутив под любые запросы. Требуется лишь время и желание. Многие популярные дистрибутивы Linux — результат работы отдельных энтузиастов или групп, недовольных имеющимся набором опций. Вот некоторые из дистрибутивов Linux специального назначения.

1. Parted Magic OS: дистрибутив для восстановления дисков и работы с разделами, который поддерживает более десяти файловых систем и включает различные утилиты для «переноса, копирования, создания, удаления, расширения и сжатия дисковых разделов. Клонирование дисков и осуществление полного бэкапа. Тестирование дисков на возможность сбоя в будущем. Поиск сбойных секторов. Тестирование производительности компьютера. Безопасная полная очистка диска без возможности восстановления. Доступ к незагружаемым HDD для восстановления важных данных».


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

Методика проектирования CORE

Reading time12 min
Views14K
Я работаю программистом более 5 лет (web), и хотел бы поделиться методикой, которая экономит силы, время и помогает автоматизировать процесс проектирования.

Методика основана на объектно-ориентированном проектировании, но несколько необычна. Зато имеет очевидные плюсы:
— в идеале, программирование по CORE сводится к описанию задачи (код близок к бизнес-логике)
— чётко разделяет систему на слабосвязанные компоненты
— легко автоматизируема, позволяет генерировать осмысленный код

Почему методика называется CORE и как это расшифровывается? Отчасти потому, что у меня тяга к красивым названиям. По буквам:
Context — контекст вычислений (что инициировало вычисления)
Object — объект, который производит вычисления
Request — действие, которое нужно совершить, чтобы объект смог продолжить вычисления
Event — событие, которое происходит с объектом

Плюсы по сравнению со стандартными способами разработки:
— ускорение стадии проектирования за счёт формализованной схемы проектирования
— ускорение стадии разработки за счёт умной генерации кода
— автоматизация создания юнит-тестов
— неглючная реализация бизнес-логики практически любой сложности
— простая поддержка кода
— простота совместного владения кодом

Минусы стандартных способов по сравнению с CORE:
— часто нельзя окинуть одним взглядом всю часть системы
— нужно самому продумывать когда и в каком месте будут вызываться обработчики тех или иных действий. CORE разруливает вызовы автоматически.
— часто вводятся дополнительные уровни абстракции, не связанные с бизнес-логикой, чтобы реализовать её особенности. в CORE это не нужно.
— программист часто совершает кучу однообразных действий, которые легко можно автоматизировать
— юнит-тестирование внедрять тяжелее

Немного теории

Законопослушный гражданин или Справочник Государственных сайтов РФ

Reading time4 min
Views82K
Доброго времени суток, Хабравчанин! На сайте, все чаще стали появляться статьи о том, как предприимчивые пользователи добивались справедливости (выполнения законов), при нарушении их прав, всяческими недобросовестными организациями. Обычно «джентельменский» набор таких контор это: смс-рассылка, телефонные звонки, хамство в офисах, некачественное предоставление услуг и товаров. Обычно, я терпимо отношусь к таким смс, в основном, это реклама такси. Но сегодня, мне пришли сразу Три Смс одного содержания, с рекламой кредитов. А при упоминании данного слова, у меня сразу же портится настроение. Поэтому для его улучшения, я полез в интернет.
В интернете, помимо нужного мне Роскомнадзора, есть много полезных сайтов, которые предлагает наше Государство. Обычно, ссылки на них очень хаотично разбросаны по сети. Здесь же, я публикую список наиболее актуальных и интересных, как мне думается, сайтов РФ, чтобы в случае надобности, они были под рукой.
Читать дальше →

013.jpg или Принцессы не какают

Reading time20 min
Views255K
Вот уже совсем скоро конец света, дорогие мои айтишнички. Чтобы вы не боялись закрывать сегодня глазки, я расскажу вам добрую сказочку. О том, что даже после самого тёмного кончика светика, после самого дремучего апокалипсика, когда даже электрончики откажутся строем ходить по проводкам, для вас, дорогие айтишнички найдётся работёнка… Принцессы? Принцессы будут. И драконы тоже. Какая ж сказка без принцесс и драконов? Так что не боимся, закрываем глазоньки и слушаем волшебную сказочку...
image
— Именем Князя Питерского, давайте сюда декларацию. Что везем? Откуда?
— Из Новосибирска. 256 мегабайт сертифицированных данных для Интернета Его Высокопревосходительства. Научные, метеорологические, новости, деловая и частная корреспонденция, — доложила я, зная, что таможня шутить не любит.
— Открывайте, посмотрим.
— Что, все 256 мегабайт смотреть будете?
Открывайте, разберемся...

Тульпа — карманная шизофрения для гиков или реальный воображаемый друг

Reading time9 min
Views1.5M
Скажите, вы бы хотели иметь друга? Любого человека или другое существо, которое будет вашим самым лучшим другом, обладая той внешностью, которая вам нравится, и тем характером который вам необходим, которое не надо будет делить с ее или его друзьями, родителями, собачкой, игрушками или учебой.
А секретаря, который всегда с вами, имеет прямой доступ к вашей памяти, напомнит, подскажет, и подаст нужную идею, напарника для мозгового штурма?
Тогда добро пожаловать под кат.



Тульпа — это стабильная самовнушенная осознанная визуализация, способная к самостоятельным мыслям и действиям, обладающая собственным сознанием. Что характерно, создается она совершенно осознанно, путем целенаправленных действий в течении долгого времени, и позволяет задавать начальный характер и форму по вашему усмотрению.
Это ты сейчас с кем разговаривал? Расшифруй определение.

Локальная сеть глобального масштаба

Reading time6 min
Views12K
У нашей компании есть группы серверов, расположенные в разных датацентрах и даже городах. На данный момент мы используем 6 датацентров. Между большей частью серверов идёт интенсивный обмен трафиком, а протоколы обмена данными не всегда обеспечивают необходимый уровень защиты. Поэтому мы решили создать общую локальную сеть между всеми имеющимися серверами. Мы отказались от создания сети при помощи OpenVPN с использованием маршрутизации из-за чрезмерной громоздкости архитектуры подобных сетей. На наш взгляд, самый простой и удобный вариант — это одноранговая сеть. Далее мы расскажем подробнее о том, как создать и настроить одноранговую сеть.
Читать дальше →

История одного Crash-а, и NSLog'а его лечившего

Reading time11 min
Views31K
Лечу Crash'и NSLog'ами. Недорого. Многолетний опыт. 100% гарантия.

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

Все началось с того, что на одном из относительно больших проектов начало стабильно вываливаться исключение при авторизации пользователя. «Ну и что тут такого? У всех бывает. Проверку на nil забыли поставить или где-то накосячили. „Тоже, мне, большое событие — crash на проекте“, — подумает большая часть программистов. В принципе — абсолютно согласен. Crash — не такое уж и редкое явление в программировании под iPhone, и с ним сталкиваешься по десять раз на день. Но этот был особенным. От него уже начало попахивать „магией“, когда мне сказали про его некоторые параметры и особенности:

  • Воспроизводимость на симуляторе: 100%
  • Воспроизводимость на устройстве: 0%
  • Путь к крэшу (после локализации крэша): ~ 40 секунд
  • Настройки оптимизации при компиляции (-O1,-O2...) не влияют на воспроизводимость
  • XIB'ы в проекте не используются


Да выглядел он довольно безобидно:

// Code
UITextView * textView = [ [UITextView alloc] initWithFrame:CGRectMake(0, 150, _width, _height)];

// Exception
*** Terminating app due to uncaught exception 'CALayerInvalidGeometry', 
    reason: 'CALayer bounds contains NaN: [0 0; nan 200]'


»Ну тут же и ежу понятно, что width — после вычисления — NaN!", — подумал я. Бегло поглядев где и как вычисляется ширина вьюхи, и не найдя ничего особого опасного, я, для утверждения своей догадки, поставил перед созданием вьюхи NSLog. А вдобавок, и точку останова на строке с созданием элемента.
// Source:
NSLog(@"width = %f", _width);

//Output:
width = 200


«Гм», — подумал про себя я, и продолжил выполнение программы после точки останова. И крэша не произошло…

Что было дальше? Читайте во второй части сразу под катом...

Модели TCP

Reading time2 min
Views34K
Совсем недавно несколько раз за короткий промежуток времени в разговорах с коллегами натыкался на принципиальное непонимание того простого факта, что тюнинг параметров TCP — это не все, что можно сделать для оптимальной утилизации каналов. Что-что? Какие-такие другие модели TCP? Нафига? Все и так можно подогнать, поигравшись Maximum Window Size, таймингами и прочим. Это конечно все здорово и бывает крайне необходимо, но не все поддается тюнингу через proc или реестр. А именно и например? Сравнить это можно с ситуацией, как если бы мы имели некую формулу и добивались результатов «кручением» в ней неких переменных и коэффициентов. Но можно ли поменять саму формулу?

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

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity