Пользователь
Как посчитать перестановки. Лекция в Яндексе
Под катом — подробная текстовая расшифровка и большинство слайдов.
Лекарства от радиации в чрезвычайных ситуациях

Американские учения «Desert Rock» с применением ядерного оружия. 1951 год.
Несмотря на то что человек всегда жил в условиях естественной радиации, с середины прошлого века у него возникла новая радиационная угроза техногенного облучения в чрезвычайных ситуациях. Это может быть ситуация применения атомного оружия, авария на ядерном объекте или террористический акт с применением “грязной” бомбы.
Население в случае подобной серьезной угрозы эффективнее всего спасать путем эвакуации, хотя ряд медикаментов можно применять и им. А вот спасателей и военных, которым придется работать в опасных условиях, обязательно нужно снабжать средствами индивидуальной защиты, в том числе и разными медицинскими препаратами от действия ионизирующих излучений. Ряд таких препаратов, называемых радиопротекторами, и сценарии для их применения я и попытаюсь описать в этой статье.
learnopengl. Урок 1.1 — OpenGL
Здравствуйте. Несколько недель назад я начинал серию переводов статей по изучению OpenGL. Но на 4 статье один хабровчанин заметил, что мои переводы могут нарушать лицензию, по которой распространяются учебные материалы, предоставленные в исходной статье. И действительно, мои переводы нарушали лицензию. Для разрешения этой проблемы я обратился к авторам того набора уроков, но так и не смог добиться нормального ответа. По этой причине я связался с автором другого, не менее (а возможно даже и более) крутого, набора уроков по OpenGL: Joey de Vries. И он дал полное разрешение на перевод его набора уроков. Его уроки гораздо более обширные, чем прошлый набор, поэтому эти переводы растянутся на долго. И я обещаю, будет интересно. Заинтересовавшихся прошу под кат.Также я встал на распутье: либо я опишу все основы вроде создания окна и контекста в одной статье, чтобы не плодить статьи, но в таком случае такую огромную статью не всякий осилит; либо я также как и раньше буду переводить, опираясь на иерархию оригинала. Я решил выбрать второй вариант.
На счет уроков по Vulkan: к сожалению мне тяжело сейчас написать уроки по данному API по причине скудной видеокарты на данный момент, которая просто не поддерживает Vulkan API, поэтому уроки по данному API будут только после обновления видеокарты.
Книга «Как пережить полный конец обеда, или безопасность в PHP». Часть 1

Big Five Part 3 by CrazyAsian1
Привет. Меня зовут Саша Баранник. В Mail.Ru Group я руковожу отделом веб-разработки, состоящим из 15 сотрудников. Мы научились создавать сайты для десятков миллионов пользователей и спокойно справляемся с несколькими миллионами дневной аудитории. Сам я занимаюсь веб-разработкой около 20 лет, и последние 15 лет по работе программировать приходится преимущественно на PHP. Хотя возможности языка и подход к разработке за это время сильно изменились, понимание основных уязвимостей и умение от них защититься остаются ключевыми навыками любого разработчика.
В интернете можно найти много статей и руководств по безопасности. Эта книга показалась мне достаточно подробной, при этом лаконичной и понятной. Надеюсь, она поможет вам узнать что-то новое и сделать свои сайты надёжнее и безопаснее.
P. S. Книга длинная, поэтому перевод будет выкладываться несколькими статьями. Итак, приступим…
Что особенного в СУБД для данных в оперативной памяти
Константин Осипов (kostja )

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

На макроуровне – это то, как должна быть устроена современная СУБД. Почему у нас сегодня есть возможность создавать новые базы данных, почему нельзя взять текущую и удовлетвориться ее производительностью, подтюнить или написать для нее патч? Просто взять и написать патч, который бы ее ускорил, если она медленная? Из какого пространства решений мы выбираем?
Обновление с Windows 7/8.1 до Windows 10 TP через Windows Update
Для тех, кто хочет попробовать 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
Внимание: параллельная установка к Office 2013 не поддерживается (речь идёт, видимо, о C2R версии, но именно так заявляется в описании), — потребуется выполнить обновление с 2013 на 16 или установка в виртуальную машину.
Всё о версиях Windows 10. Что такое Threshold1, Threshold2 и Redstone
Для начала следует понимать, — «Windows 10» это надолго, и это не одна ОС, как было ранее, а линейка, которую компания будет развивать годами. То есть, по сути, за табличкой «Windows 10» Microsoft меняет ядра ОС, предлагая новые версии, как глобальные обновления, которые не в привычном нам смысле устанавливаются как дополнение к ОС, а ставятся поверх неё как новая ОС. На данный момент глобальных версии ОС было две – Threshold1 и Threshold2, сейчас в процессе активного тестирования находится Redstone1 со сроком выхода в конце июля 2016. В пределах глобальной версии существуют разные сборки. Версия текущей установленной ОС повышается путем инсталляции обновлений с Windows Update. Некоторые сборки выпускаются в виде отдельных образов, доступных для загрузки и первоначальной установки, большинство же представляют собой просто накопительные обновления. Сегодня я расскажу о глобальных версиях ОС и тех сборках, которые можно загрузить и установить с нуля.
Как бесплатно обновить Windows 7 и 8.1 до Windows 10 после 29.07.2016

В действительности, с 19.07.2016 на всех активированных системах с установленными розничными изданиями Windows 7/8.1 на которые пользователи регулярно устанавливали рекомендованные обновления Microsoft, включился счётчик с обратным отсчётом оставшегося для бесплатного обновления времени. Безусловно, это подстегнуло многих, отложивших обновление на последние дни. И, как и обещали, с 29.07.2016 предложения бесплатно обновить ОС через Windows Update исчезли. Неужели те, кто не успели обновить остались без возможности получить новую ОС бесплатно? К счастью, нет! Возможность бесплатного обновления ОС осталась. Давайте разберемся, как теперь можно обновить свои Windows 7 и Windows 8.1 до Windows 10.
Наивная реализация std::bind(boost::bind)
Встраивание функциональных объектов, функций и лямбд через шаблоны и унификация при помощи virtual на C++
О задаче
Некоторое время назад появилась необходимость реализовать небольшой модуль, который в зависимости от пользовательской (runtime) информации будет выполнять различные действия внутри ядра программы. При этом основными требованиями были максимальная производительность (оптимизируемость) кода, отсутствие сторонних зависимостей и простое масштабирование на случай добавления функционала.
Для большей простоты и читабельности в примерах кода будут показаны только наиболее сложные ключевые механизмы. Примеры машинного кода приводятся для компилятора майкрософт при оптимизации О2.
Жаргон функционального программирования

У функционального программирования много преимуществ, и его популярность постоянно растет. Но, как и у любой парадигмы программирования, у ФП есть свой жаргон. Мы решили сделать небольшой словарь для всех, кто знакомится с ФП.
В примерах используется JavaScript ES2015). (Почему JavaScript?)
Работа над материалом продолжается; присылайте свои пулл-реквесты в оригинальный репозиторий на английском языке.
В документе используются термины из спецификации Fantasy Land spec по мере необходимости.
Arity (арность)
Количество аргументов функции. От слов унарный, бинарный, тернарный (unary, binary, ternary) и так далее. Это необычное слово, потому что состоит из двух суффиксов: "-ary" и "-ity.". Сложение, к примеру, принимает два аргумента, поэтому это бинарная функция, или функция, у которой арность равна двум. Иногда используют термин "диадный" (dyadic), если предпочитают греческие корни вместо латинских. Функция, которая принимает произвольное количество аргументов называется, соответственно, вариативной (variadic). Но бинарная функция может принимать два и только два аргумента, без учета каррирования или частичного применения.
Что необходимо знать о резисторах?

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

В этой статье мы рассмотрим базовые техники оптимизации кода, которые могут увеличить производительность вашей программы во много раз. Мы также коснёмся устройства процессора. Понимание как работает процессор необходимо для написания эффективных программ.
Нейронные сети для любопытных программистов (с примером на c#)
Пример использования policy-based design в С++ вместо копипасты и создания ООП-шых иерархий
Математика на пальцах: давайте посчитаем хотя бы один ряд Фурье в уме
Нужно ли вам читать этот текст?
Давайте проверим. Прочтите следующее:
Тригонометрическим рядом Фурье функции называют функциональный ряд вида
где
Страшно, но всё же хочется понять, что это значит?
Значит, вам под кат. Постараюсь формул не использовать.
Неожиданное поведение WinAPI-функции IsWow64Process()
Итак, о чём же идёт речь? Операционная система 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 достаточно детально, есть пара предупреждений на счёт способа её вызова, но в общём-то всё тривиально. Пример кода даже есть. Беда только в том, что в некоторых случаях эта функция врёт и определяет архитектуру процесса неверно.
Не так-то просто обнулять массивы в VC++ 2015
В чем разница между двумя этими определениями инициализированных локальных переменных С/С++?char buffer[32] = { 0 };
char buffer[32] = {};Одно отличие состоит в том, что первое допустимо в языках С и С++, а второе — только в С++.
Что ж, давайте тогда сосредоточимся на С++. Что означают эти два определения?
Первое гласит: компилятор должен установить значение первого элемента массива в ноль и затем (грубо говоря) инициализировать нулями оставшиеся элементы массива. Второе означает, что компилятор должен инициализировать нулями весь массив.
Эти определения несколько различаются, но по факту результат один — весь массив должен быть инициализирован нулями. Поэтому согласно правилу «as-if» в С++ они одинаковы. То есть любой достаточно современный оптимизатор должен генерировать идентичный код для каждого из этих фрагментов. Верно?
Информация
- В рейтинге
- Не участвует
- Зарегистрирован
- Активность
 называют функциональный ряд вида


