Search
Write a publication
Pull to refresh
4
0.1
Send message

Квантовое хеширование. Лекция в Яндексе

Reading time20 min
Views20K
Фарид Мансурович Аблаев — заведующий кафедрой теоретической кибернетики Казанского федерального университета. Приехав в московский офис Яндекса, Фарид Мансурович рассказал об алгоритмах, потенциально пригодных для запуска на квантовых компьютерах. Таких устройств пока очень мало, и они толком не освоены даже самыми передовыми компаниями. Но когда они начнут дешеветь, у специалистов уже будут наработки, позволяющие приступить к их использованию.


Одна из сфер, где с появлением квантовых систем могут произойти серьёзные изменения, — механизмы цифровой подписи. В докладе раскрывается алгоритм хеширования, радикально превосходящий аналоги для классических компьютеров. Под катом — подробная расшифровка и слайды.

Обходим детектирование виртуальной машины программами в VMWare

Reading time3 min
Views147K
Разработчики вирусного ПО и просто разработчики, не желающие, чтобы их программу пытались реверсить, на этапе запуска или установки проводят проверки на виртуальную машину, и в случае её обнаружения отказываются работать, а то и вовсе самоликвидируются. Под катом описан способ, как можно попробовать решить эту проблему.
Читать дальше →

Как посчитать перестановки. Лекция в Яндексе

Reading time22 min
Views28K
Некоторое время назад в московский офис Яндекса приезжал Игорь Пак — ученый с множеством научных работ, выпускник мехмата МГУ и аспирантуры Гарварда. Сейчас Игорь работает в Калифорнийском университете. Его лекция в Яндексе была посвящена различным классам последовательностей и перестановкам. В том числе прямо по ходу лекции он представил выкладки, опровергающие гипотезу Нунана и Зайлбергера — одну из ключевых в области перестановок.



Под катом — подробная текстовая расшифровка и большинство слайдов.

Лекарства от радиации в чрезвычайных ситуациях

Reading time13 min
Views398K
image
Американские учения «Desert Rock» с применением ядерного оружия. 1951 год.

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

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

learnopengl. Урок 1.1 — OpenGL

Reading time7 min
Views357K
Здравствуйте. Несколько недель назад я начинал серию переводов статей по изучению OpenGL. Но на 4 статье один хабровчанин заметил, что мои переводы могут нарушать лицензию, по которой распространяются учебные материалы, предоставленные в исходной статье. И действительно, мои переводы нарушали лицензию. Для разрешения этой проблемы я обратился к авторам того набора уроков, но так и не смог добиться нормального ответа. По этой причине я связался с автором другого, не менее (а возможно даже и более) крутого, набора уроков по OpenGL: Joey de Vries. И он дал полное разрешение на перевод его набора уроков. Его уроки гораздо более обширные, чем прошлый набор, поэтому эти переводы растянутся на долго. И я обещаю, будет интересно. Заинтересовавшихся прошу под кат.

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

На счет уроков по Vulkan: к сожалению мне тяжело сейчас написать уроки по данному API по причине скудной видеокарты на данный момент, которая просто не поддерживает Vulkan API, поэтому уроки по данному API будут только после обновления видеокарты.
Читать дальше →

Книга «Как пережить полный конец обеда, или безопасность в PHP». Часть 1

Reading time22 min
Views46K
image

Big Five Part 3 by CrazyAsian1

Привет. Меня зовут Саша Баранник. В Mail.Ru Group я руковожу отделом веб-разработки, состоящим из 15 сотрудников. Мы научились создавать сайты для десятков миллионов пользователей и спокойно справляемся с несколькими миллионами дневной аудитории. Сам я занимаюсь веб-разработкой около 20 лет, и последние 15 лет по работе программировать приходится преимущественно на PHP. Хотя возможности языка и подход к разработке за это время сильно изменились, понимание основных уязвимостей и умение от них защититься остаются ключевыми навыками любого разработчика.

В интернете можно найти много статей и руководств по безопасности. Эта книга показалась мне достаточно подробной, при этом лаконичной и понятной. Надеюсь, она поможет вам узнать что-то новое и сделать свои сайты надёжнее и безопаснее.

P. S. Книга длинная, поэтому перевод будет выкладываться несколькими статьями. Итак, приступим…
Читать дальше →

Что особенного в СУБД для данных в оперативной памяти

Reading time31 min
Views33K

Константин Осипов (kostja )


Константин Осипов

Как родилась идея доклада? Я не очень люблю выступать и рассказывать про фичи, особенно про будущие фичи. Выясняется, что и люди не особо любят это слушать. Они любят слушать про то, как все устроено. Это доклад о том, как все устроено или должно быть, с моей точки зрения, устроено в современной СУБД.

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



На макроуровне – это то, как должна быть устроена современная СУБД. Почему у нас сегодня есть возможность создавать новые базы данных, почему нельзя взять текущую и удовлетвориться ее производительностью, подтюнить или написать для нее патч? Просто взять и написать патч, который бы ее ускорил, если она медленная? Из какого пространства решений мы выбираем?

Обновление с Windows 7/8.1 до Windows 10 TP через Windows Update

Reading time3 min
Views1.5M
Согласно анонсу Windows 10 будет предложена бесплатно в качестве обновления на все Windows 7 и Windows 8.1 системы в течение первого года после публичного выхода. Как именно? Через Windows Update. Нужно понимать, что это предложение обновления, а не лицензия. То есть лицензия на Windows 7 позволит автоматически обновить систему в течение года. Серийного номера, образа, коробки или наклейки предложено не будет. При этом также обещано, что те кто обновятся сейчас на Windows 10 Technical Preview получат затем через Windows Update версию Consumer Preview, Release Preview, а далее и финальной версии. С выходом январского Windows 10 Technical Preview (10.0.9926) появилась также и небольшая утилита для Windows 7 и Windows 8.1, после установки которой, Windows 10 приходит на ваш ПК в виде обновления. Именно об этом я и буду рассказывать ниже.

Для тех, кто хочет попробовать Windows 10 Technical Preview уже сейчас, буду неоригинальным, — это предварительная версия, часть функционала не работает, могут возникнуть проблемы с драйверами и сторонним ПО. Продолжаем. Если вы хотите обновить ваш Windows 7 до Windows 10, загрузите специальную утилиту Prepare с сайта Microsoft, для Windows 8.1 существует аналогичная утилита подготовки.

Я буду показывать процесс обновления для русской Windows 7 Professional, английской Windows 8.1 Single Language и английской 8.1 Professional with MediaCenter. Сразу скажу, медиацентр не переживёт обновления, — текущая версия Windows 10 Technical Preview его не поддерживает и обновит на обычный Windows 10 Professional TP. Тем, кому важен Windows MediaCenter рекомендую дождаться Consumer Preview или более новых сборок.
Читать дальше →

Как загрузить Microsoft Office 16 с сайта Microsoft

Reading time3 min
Views175K
На днях я рассказал, как получить Windows 10 Preview через Windows Update для ваших Windows 7/8.1. Статья вызвала неожиданно бурный интерес и более сотни комментариев, что натолкнуло меня на мысль, что публике может быть интересно посмотреть Microsoft Office 2016 Technical Preview. На днях на Connect как раз стала доступна январская версия. Занятно, что обычно доступ к предварительным версиям Office крайне ограничен, а сейчас – без анонсов и рекламы, загрузить сборку может любой желающий. Доступны разные языки, включая русский. Также имеется возможность регулярно загружать новые сборки. Есть, правда, одно «но» – продукт поставляется в формате Click2Run. Подробно об этом я рассказывал в статье «Как загрузить последний Office с сайта Microsoft без всякого App-V». Посмотрим, что же надо для того, чтобы загружать предварительные сборки Office.

Внимание: параллельная установка к Office 2013 не поддерживается (речь идёт, видимо, о C2R версии, но именно так заявляется в описании), — потребуется выполнить обновление с 2013 на 16 или установка в виртуальную машину.
Читать дальше →

Всё о версиях Windows 10. Что такое Threshold1, Threshold2 и Redstone

Reading time4 min
Views61K
Немногим более года назад я поделился своими исследованиями о версиях Windows 8.1 (и Windows Server 2012 R2). Материал вызвал бурную дискуссию, которая могла бы быть еще большей, если бы не ограничения данного блога на возможность комментировать заметку пользователям с нулевым рейтингом. Так ту как мою заметку перенесли с Хабра на GT, где я сам уже не мог комментировать свою же статью или вносить в нее изменения, я упустил момент и практически полгода не добавлял материала. Сейчас я хочу в новой заметке начать собирать информацию о сборках Windows 10, коих уже по некоторым подсчётам уже три, а по другим четыре. Планирую пополнять эту заметку с выходом Windows Server 2016 и Redstone1 сборки Windows 10.

Для начала следует понимать, — «Windows 10» это надолго, и это не одна ОС, как было ранее, а линейка, которую компания будет развивать годами. То есть, по сути, за табличкой «Windows 10» Microsoft меняет ядра ОС, предлагая новые версии, как глобальные обновления, которые не в привычном нам смысле устанавливаются как дополнение к ОС, а ставятся поверх неё как новая ОС. На данный момент глобальных версии ОС было две – Threshold1 и Threshold2, сейчас в процессе активного тестирования находится Redstone1 со сроком выхода в конце июля 2016. В пределах глобальной версии существуют разные сборки. Версия текущей установленной ОС повышается путем инсталляции обновлений с Windows Update. Некоторые сборки выпускаются в виде отдельных образов, доступных для загрузки и первоначальной установки, большинство же представляют собой просто накопительные обновления. Сегодня я расскажу о глобальных версиях ОС и тех сборках, которые можно загрузить и установить с нуля.
Читать дальше →

Как бесплатно обновить Windows 7 и 8.1 до Windows 10 после 29.07.2016

Reading time4 min
Views892K
Как известно, в Microsoft изначально заявляли, что Windows 10, вышедшая 29.07.2015, будет бесплатным обновлением для розничных и OEM инсталляций Windows 7 и Windows 8.1 в течении одного года – до 29.07.2016. А после 29.07.2016 обновление через Windows Update предлагаться не будет, и его придётся покупать. Windows Update на Windows 7 и Windows 8.1 регулярно предлагал выполнить обновление до Windows 10.


В действительности, с 19.07.2016 на всех активированных системах с установленными розничными изданиями Windows 7/8.1 на которые пользователи регулярно устанавливали рекомендованные обновления Microsoft, включился счётчик с обратным отсчётом оставшегося для бесплатного обновления времени. Безусловно, это подстегнуло многих, отложивших обновление на последние дни. И, как и обещали, с 29.07.2016 предложения бесплатно обновить ОС через Windows Update исчезли. Неужели те, кто не успели обновить остались без возможности получить новую ОС бесплатно? К счастью, нет! Возможность бесплатного обновления ОС осталась. Давайте разберемся, как теперь можно обновить свои Windows 7 и Windows 8.1 до Windows 10.
Читать дальше →

Наивная реализация std::bind(boost::bind)

Reading time6 min
Views50K
Наверное, трудно найти такого программиста на C++, который никогда не применял в своем коде boost::bind (с выходом c++11 std::bind). Bind — шаблонная функция, возвращающая обёртку над callable-объектом (т.е. объектом, который можно вызвать, передав ему необходимое число аргументов в круглых скобочках). Bind позволяет изменить сигнатуру вызова такого объекта, сократив число входных аргументов или поменяв какие-то из них местами. Кому интересно, как это может быть реализовано с использованием C++11, прошу под кат.
Читать дальше →

Встраивание функциональных объектов, функций и лямбд через шаблоны и унификация при помощи virtual на C++

Reading time11 min
Views16K
В этой статье показаны некоторые механизмы, позволяющие получить достаточно производительный (встраиваемый во время компиляции) и легко масштабируемый код для управления вызовами различных объектов при помощи стандартных технологий С++.

О задаче


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

Для большей простоты и читабельности в примерах кода будут показаны только наиболее сложные ключевые механизмы. Примеры машинного кода приводятся для компилятора майкрософт при оптимизации О2.
Читать дальше →

Жаргон функционального программирования

Reading time10 min
Views95K


У функционального программирования много преимуществ, и его популярность постоянно растет. Но, как и у любой парадигмы программирования, у ФП есть свой жаргон. Мы решили сделать небольшой словарь для всех, кто знакомится с ФП.


В примерах используется JavaScript ES2015). (Почему JavaScript?)


Работа над материалом продолжается; присылайте свои пулл-реквесты в оригинальный репозиторий на английском языке.


В документе используются термины из спецификации Fantasy Land spec по мере необходимости.


Arity (арность)


Количество аргументов функции. От слов унарный, бинарный, тернарный (unary, binary, ternary) и так далее. Это необычное слово, потому что состоит из двух суффиксов: "-ary" и "-ity.". Сложение, к примеру, принимает два аргумента, поэтому это бинарная функция, или функция, у которой арность равна двум. Иногда используют термин "диадный" (dyadic), если предпочитают греческие корни вместо латинских. Функция, которая принимает произвольное количество аргументов называется, соответственно, вариативной (variadic). Но бинарная функция может принимать два и только два аргумента, без учета каррирования или частичного применения.

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

Что необходимо знать о резисторах?

Reading time5 min
Views95K


Резистор: кусочек материала, сопротивляющийся прохождению электрического тока. К обоим концам присоединены клеммы. И всё. Что может быть проще?

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

Начнём с самого простого и старого.

Углеродные композиционные резисторы


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

Оптимизация кода: процессор

Level of difficultyHard
Reading time18 min
Views117K
Все программы должны быть правильными, но некоторые программы должны быть быстрыми. Если программа обрабатывает видео-фреймы или сетевые пакеты в реальном времени, производительность является ключевым фактором. Недостаточно использовать эффективные алгоритмы и структуры данных. Нужно писать такой код, который компилятор легко оптимизирует и транслирует в быстрый исполняемый код.

image

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

Нейронные сети для любопытных программистов (с примером на c#)

Reading time5 min
Views137K
Так как в заголовке был отмечен «для любопытных программистов», хочу сказать, что и моё любопытство привело к тому, что я, будучи разработчиком мобильных игр, написал такой пост. Я совершенно уверен, что найдутся программисты, которые когда-то думали об искусственных интеллектах и это очень хороший шанс для них.
Читать дальше →

Пример использования policy-based design в С++ вместо копипасты и создания ООП-шых иерархий

Reading time9 min
Views17K
Язык C++ очень часто обвиняют в неоправданной сложности. Конечно же, язык C++ сложен. И с каждым новым стандартом становится все сложнее. Парадокс, однако, состоит в том, что постоянно усложняясь, C++ последовательно и поступательно упрощает жизнь разработчикам. В том числе и обычным программистам, которые пишут код попроще, чем разработчики Boost-а или Folly. Чтобы не быть голословным, попробую показать это на небольшом примере «из недавнего»: как в результате адаптации к различным условиям тривиальный класс превратился в легкий хардкор с использованием policy-based design.
Много примеров кода

Математика на пальцах: давайте посчитаем хотя бы один ряд Фурье в уме

Reading time6 min
Views91K

Нужно ли вам читать этот текст?


Давайте проверим. Прочтите следующее:

Тригонометрическим рядом Фурье функции  называют функциональный ряд вида



где







Страшно, но всё же хочется понять, что это значит?


Значит, вам под кат. Постараюсь формул не использовать.
Читать дальше →

Неожиданное поведение WinAPI-функции IsWow64Process()

Reading time4 min
Views17K
Эта заметка пишется для тех, кто когда-нибудь будет гуглить название WinAPI-функции IsWow64Process() в попытках понять, почему же она иногда работает не так, как это описано в MSDN. Вполне возможно, что это буду я сам через год-другой. Но, возможно, пригодиться и кому-то ещё.

Итак, о чём же идёт речь? Операционная система Windows, как известно, бывает 32-битной или 64-битной. На 32-битной Windows можно запустить только 32-битные приложения — а значит вопрос «это 32-битное приложение или 64-битное?» там попросту не имеет смысла, ответ известен заранее. Жизнь на 64-битном варианте Windows немного веселее — здесь можно запускать как 64-битные приложения (они считаются нативными), так и 32-битные, которые не являются родными для ОС, и выполняются они в специальной подсистеме WoW64 (Windows-on-Windows 64-bit). Подсистема эта включает в себя средства запуска 32-битного кода, отдельные ветки реестра и системные папки для работы 32-битных приложений в 64-битной среде.

Иногда бывает важно знать, является ли некоторый процесс, работающий в 64-битной Windows, действительно нативным 64-битным процессом, или WoW64-процессом (то есть 32-битным приложением, работающим в WoW64-подсистеме). Для этих целей Microsoft предлагает использовать функцию IsWow64Process(). Описание в MSDN достаточно детально, есть пара предупреждений на счёт способа её вызова, но в общём-то всё тривиально. Пример кода даже есть. Беда только в том, что в некоторых случаях эта функция врёт и определяет архитектуру процесса неверно.
Читать дальше →

Information

Rating
7,452-nd
Registered
Activity