Pull to refresh
-4
Karma
0
Rating

Простое сложное программирование

Timeweb Cloud corporate blog Programming *C++ *C *Research and forecasts in IT *


В очередной раз увидел на Хабре статью про сложное дело под названием «программирование». И то, что программирование действительно является делом не простым воспринимается как факт и обычно не требует какого либо подтверждения.

Но понятие «сложность» сродни термину «куча». Для кого-то и пять кокосов это не куча, а кого-то съел один и «больше не хочется» — значит для него и единственного кокоса будет много.

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

Обычно разговоры о «сложности» включают в себя только оценочные суждения без какой либо численной оценки. А так как лично меня интересует вопрос сложности языков программирования, то я решил посчитать сложность реализации компилятора gcc в каких нибудь условных попугаях. Вдруг можно будет увидеть какие нибудь закономерности?
Читать дальше →
Total votes 18: ↑12 and ↓6 +6
Views 5.9K
Comments 38

oVirt за 2 часа. Часть 1. Открытая отказоустойчивая платформа виртуализации

Open source *IT Infrastructure **nix *Virtualization *Server Administration *
Tutorial

Введение


Open source проект oVirt — свободная платформа виртуализации корпоративного уровня. Пролистав habr, обнаружил, что oVirt освещен здесь не так широко, как того заслуживает.
oVirt фактически является апстримом для коммерческой системы Red Hat Virtualization (RHV, ранее RHEV), растет под крылом Red Hat. Чтобы не возникло путаницы, это не то же, что CentOS vs RHEL, модель ближе к Fedora vs RHEL.
Под капотом — KVM, для управления используется веб-интерфейс. Базируется на ОС RHEL/CentOS 7.
oVirt может использоваться как для «традиционной» серверной, так и десктопной виртуализации (VDI), в отличие от решения VMware обе системы могут уживаться в одном комплексе.
Проект хорошо документирован, давно достиг зрелости для продуктивного применения и готов к высоким нагрузкам.
Эта статья — первая в цикле о том, как построить работающий отказоустойчивый кластер. Пройдя по ним, мы за короткое (порядка 2-х часов) время получим полностью работающую систему, хотя ряд вопросов, конечно, раскрыть не удастся, постараюсь осветить их в следующих статьях.
Читать дальше →
Total votes 5: ↑5 and ↓0 +5
Views 23K
Comments 0

YouTube отключил рекламу антивакцинаторам

Popular science Social networks and communities
Месяц назад YouTube объявил, что планирует исключить из списка рекомендаций видео с теориями заговоров. С одной стороны, это нарушает свободу слова. С другой стороны, YouTube имеет право устанавливать свои правила, поскольку это коммерческий сервис.

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

Таким образом, «антивакцинаторы» теряют важный источник финансирования и есть надежда, что некоторые из них свернут свою деятельность.
Читать дальше →
Total votes 96: ↑92 and ↓4 +88
Views 43K
Comments 686

Точное вычисление средних и ковариаций методом Уэлфорда

Programming *Algorithms *Mathematics *Machine learning *

Метод Уэлфорда — простой и эффективный способ для вычисления средних, дисперсий, ковариаций и других статистик. Этот метод обладает целым рядом прекрасных свойств:


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

Оригинальная статья Уэлфорда была опубликована в 1962 году. Тем не менее, нельзя сказать, что алгоритм сколь-нибудь широко известен в настоящее время. А уж найти математическое доказательство его корректности или экспериментальные сравнения с другими методами и вовсе нетривиально.


Настоящая статья пытается заполнить эти пробелы.


Читать дальше →
Total votes 53: ↑53 and ↓0 +53
Views 20K
Comments 9

Советские «Эльбрусы» — обзор архитектуры

System Analysis and Design *Designing and refactoring *Compilers *Reverse engineering *
image

Про предмет статьи ходит много домыслов — от «русский Барроуз» до «не имеющий аналогов». Вызвано это в немалой степени отсутствием (доступной) полноценной документации, немногочисленным кругом лиц, имевших с ними дело да и немалым временем, прошедшим с тех пор. «Эльбрус» превратился в один из мифов ушедшей эпохи.

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

Так что автор из свойственной ему любознательности попытался разобраться с доступной документацией и составить более — менее цельную картину. Если читателю это интересно — добро пожаловать под кат.
Читать дальше →
Total votes 50: ↑50 and ↓0 +50
Views 21K
Comments 38

Суперскалярный стековый процессор: продолжаем скрещивать ужа и ежа

System Analysis and Design *Compilers *C *

Продолжение статьи, где удалось продемонстрировать, что фронтенд стековой машины вполне позволяет спрятать за ним суперскалярный процессор с OoO.
Тема данной статьи — вызов функций.
Читать дальше →
Total votes 12: ↑12 and ↓0 +12
Views 7.5K
Comments 3

Чем Fault Tolerant серверы отличаются от «бытового» ширпотреба на конкретном примере

КРОК corporate blog System administration *IT Infrastructure *Server Administration *

«Зеркальный» кластер с синхронными вычислительными процессами, вид спереди

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

Эти решения особенно интересны для админов. Дело в том, что они защищены не физически — кожухами, отказоустойчивыми интерфейсами или чем-то ещё, а на уровне именно архитектуры вычислений.

Нам в руки попал флагман ftServer 6800 от Stratus. Это корпус с двумя идентичными вычислительными узлами, объединёнными в один кластер, причем обе его половинки работают синхронно и делают одно и то же «зеркально». Это старая добрая «космическая» архитектура, когда вычислительный процесс проходит сразу два независимых аппаратных пути. Если где-то возникнет баг (не связанный с кривостью кода), то один из результатов точно достигнет цели. Это важно для критичных систем в самых разных областях от банкинга до медицины, и это очень важно там, где есть «тихая потеря данных». То есть там, где во весь рост встают баги процессоров, связанные с тем, что кристаллы всё же уникальные и двух одинаковых машин не бывает в природе. Обычно это не проявляется, но на ответственных задачах требуется защититься от случайного влияния помех и возможных более явных проблем. Поэтому вот так и сделано.
Читать дальше →
Total votes 44: ↑41 and ↓3 +38
Views 30K
Comments 31

Одинарная или двойная точность?

Programming *C *Mathematics *
Translation
Tutorial

Введение


В научных вычислениях мы часто используем числа с плавающей запятой (плавающей точкой). Эта статья представляет собой руководство по выбору правильного представления числа с плавающей запятой. В большинстве языков программирования есть два встроенных вида точности: 32-битная (одинарная точность) и 64-битная (двойная точность). В семействе языков C они известны как float и double, и здесь мы будем использовать именно такие термины. Есть и другие виды точности: half, quad и т. д. Я не буду заострять на них внимание, хотя тоже много споров возникает относительно выбора half vs float или double vs quad. Так что сразу проясним: здесь идёт речь только о 32-битных и 64-битных числах IEEE 754.

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

Статья разбита на две отдельные (но связанные) дискуссии: что использовать для хранения ваших данных и что использовать при вычислениях. Иногда лучше хранить данные во float, а вычисления производить в double.
Читать дальше →
Total votes 37: ↑31 and ↓6 +25
Views 55K
Comments 114

Что нужно знать про арифметику с плавающей запятой

C++ *
Sandbox


В далекие времена, для IT-индустрии это 70-е годы прошлого века, ученые-математики (так раньше назывались программисты) сражались как Дон-Кихоты в неравном бою с компьютерами, которые тогда были размером с маленькие ветряные мельницы. Задачи ставились серьезные: поиск вражеских подлодок в океане по снимкам с орбиты, расчет баллистики ракет дальнего действия, и прочее. Для их решения компьютер должен оперировать действительными числами, которых, как известно, континуум, тогда как память конечна. Поэтому приходится отображать этот континуум на конечное множество нулей и единиц. В поисках компромисса между скоростью, размером и точностью представления ученые предложили числа с плавающей запятой (или плавающей точкой, если по-буржуйски).

Арифметика с плавающей запятой почему-то считается экзотической областью компьютерных наук, учитывая, что соответствующие типы данных присутствуют в каждом языке программирования. Я сам, если честно, никогда не придавал особого значения компьютерной арифметике, пока решая одну и ту же задачу на CPU и GPU получил разный результат. Оказалось, что в потайных углах этой области скрываются очень любопытные и странные явления: некоммутативность и неассоциативность арифметических операций, ноль со знаком, разность неравных чисел дает ноль, и прочее. Корни этого айсберга уходят глубоко в математику, а я под катом постараюсь обрисовать лишь то, что лежит на поверхности.
Читать дальше →
Total votes 245: ↑242 and ↓3 +239
Views 769K
Comments 75

Инженерные системы наших дата-центров и их мониторинг, часть первая

Дата-центр «Миран» corporate blog IT Infrastructure *
Привет, Хабр! Я инженер компании «Миран», которая занимается выдачей в аренду различных серверов, размещением клиентского оборудования в своих дата-центрах и прочими подобными делами.



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

Осторожно, много картинок!
Читать дальше →
Total votes 20: ↑19 and ↓1 +18
Views 12K
Comments 18

Software Asset Management в Райффайзенбанке — процесс и результат

Райффайзен Банк corporate blog System administration *IT Infrastructure *


В конце сентября этого года в Берлине пройдёт конкурс европейских проектов по SAM — SAMS Europe Award 2017. Мы считаем, что наш проект как минимум заслуживает признания, и потому подали заявку на участие в двух категориях: Overall Project / Strategy и Tool / Software. Чем примечательна реализованная у нас система SAM? Дело в том, что в Райффайзенбанке сложилось особенное сочетание программных продуктов, из-за чего пришлось вносить много изменений в выбранный нами продукт для управления программными активами. Под катом — подробный рассказ об этой эпопее.
Читать дальше →
Total votes 21: ↑20 and ↓1 +19
Views 7K
Comments 2

Выбираем бесплатный сервер в облаке для тестовых целей, домашних проектов и т.д

Configuring Linux *Server Administration *DevOps *
Всегда хотелось познакомиться с облачными сервисами, но на моих работах они либо не использовались, либо не в моём отделе. Платить свои деньги не очень хотелось за такое знакомство, да и всё это казалось довольно сложным. Куча разных тарифов, что-то бесплатно, что-то платно. Но на самом деле каждый может разобраться с этим и самое главное легко. Настолько легко, что вы просто обязаны получить свой собственный бесплатный облачный сервер прямо сейчас. Осталось только выбрать какой.

Статья будет полезна тем, кто ещё не пользовался облачными серверами.


Читать дальше →
Total votes 37: ↑36 and ↓1 +35
Views 287K
Comments 110

Information

Rating
Does not participate
Registered
Activity