Наша команда как и многие другие работала с облачными продуктами Atlassian: Jira и Confluence. Осенью прошлого года, Atlassian отправила нам письмо счастья.
Пользователь
Поговорим об оптимизирующих компиляторах. Сказ третий: неопределённое поведение и оптимизации
Вообще-то, третья статья данного цикла должна была рассказывать о конкретных оптимизациях. Но пока я прикидывал её план, стало ясно, что без освещения некоторых аспектов неопределённого поведения многое из дальнейших описаний будет непонятно. Поэтому сделаем ещё один осторожный шаг, прежде, чем окунаться в омут с головой.
Наверное, многие слышали, что неопределённое поведение (undefined behavior, UB) -- постоянный источник разнообразных багов, иногда очень забавных, иногда довольно жутких. Тема также неоднократно освещалась и на Хабре, навскидку раз, два, три (и даже целый тег есть). Однако чаще всего статьи по данной теме посвящены тому, как можно отстрелить себе ногу, голову или случайно сжечь свой жёсткий диск, исполнив какой-нибудь опасный код. Я же намерен сделать акцент на том, зачем авторы языков программирования надобавляли всей этой красоты, и как оптимизатор может её эксплуатировать. Всё будет проиллюстрировано наглядными примерами из LLVM и присыпано байками из собственного опыта, так что наливайте себе чай, располагайтесь поудобнее, и погнали.
Как правильно готовиться к ШАД
Я, Александр Лыков, кандидат физико-математических наук на мехмате МГУ и уже несколько лет я готовлю своих студентов к ШАД. В этой статье я решил разобрать наиболее важные моменты при подготовке к экзамену.
От алгебры школьной — к университетской
В статье даётся краткий обзор курса алгебры, призванный помочь тем, кто собирается изучать её самостоятельно, с репетитором или на курсах.
Университетский курс алгебры условно можно разбить на три части:
• элементарная алгебра (комплексные числа, многочлены, делимость, вычеты, ...);
• линейная алгебра (системы линейных уравнений, теория размерности, матрицы, линейные отображения, билинейные и квадратичные формы, тензоры, ...);
• высшая алгебра (алгебраические структуры: группы, кольца, поля, ...).
Для большинства наук и приложений, в машинном обучении, computer science прежде всего нужна, конечно, линейная алгебра. Для её успешного освоения нужно уверенно владеть элементарной алгеброй. На школьном уровне она (не)проста и скучна. Но при переходе в университет алгебра резко становится абстрактной и потому для многих сложной и непонятной: больно много аксиоматических определений — примеры еле поспевают. Как исторически произошёл этот скачок? Что нужно/полезно всем, изучающим математику, из высшей алгебры? Как лучше освоить азы линейной алгебры с прицелом на приложения, machine learning, не упустив что-то важное, но и не перетрудившись зря? Эти вопросы мы обсудим в статье.
Ломаем хаскелем Brainfuck
Немного о bfc
Brainfuck — очень глупый язык. Там есть лента из 30к ячеек, по байту каждая. Команды bfc это:
- Передвижение по ленте влево и вправо (символы
<
и>
) - Увеличение и уменьшение значения в ячейке (символы
+
и-
) - Ввод и вывод текущей ячейки (символы
.
и,
) - И цикл while, который продолжается пока значение в текущей ячейке не ноль.
[
и]
это начало и конец цикла соответственно
Программировать на bfc сложно. Но, как известно, любую проблему можно решить добавлением слоя абстракции (кроме проблемы большого количества абстракций).
Поговорим об оптимизирующих компиляторах. Сказ второй: Доминирование
Сегодня мы продолжаем наш разговор об оптимизирующих компиляторах для самых маленьких и не очень. Для тех, кто пока не в курсе происходящего, но желает приобщиться - я поставил себе задачу написать цикл вводных статей в эту область для совсем-совсем начинающих. Первую часть, где рассказывается об SSA-форме, можно и нужно прочитать здесь.
Сегодня мы поговорим о доминировании. Это одна из фундаментальных вещей, на которых стоит как теория компиляторов вообще, так и многие компиляторные оптимизации в частности. Пристегните ремни и запишите стоп-слово на бумажке, чтобы не забыть.
Кругом сплошные плюсы: топ-10 докладов конференции C++ Russia 2019 Piter
Математическая продлёнка. Теория чисел на пальцах
Это собранные в одну статью заметки к циклу занятий математического кружка. Кружковая математика не только про олимпиады, про успеваемость в школе и про хитровыдуманные задачки на смекалку. Это и расширение эрудиции, и небольшие самостоятельные исследования и своеобразные "экскурсии к предгорьям" большой математики.
Статья посвящена модулярным арифметикам, простым для понимания и доступным для экспериментов алгебраическим структурам, которые, тем не менее, способны показать "внутреннее устройство" числовой системы и познакомить с элементами теории чисел и теории колец. Это ни в коем случае не учебник по алгебре, не учебное пособие и не туториал в духе "теория колец за 10 минут". Это неформальное приглашение к исследованию тех, кому любопытно, что же мы имеем в виду, когда говорим слово "число".
Поговорим об оптимизирующих компиляторах. Сказ первый: SSA-форма
Всем привет. Сегодня я хотел бы поговорить об устройстве современных оптимизирующих компиляторов. Я никогда не публиковался на Хабре ранее, но надеюсь, что мне удастся написать серию статей, которая просуммирует мой опыт в этой области.
Коротко обо мне. Меня зовут Макс, и так получилось, что я вот уже 10 лет, почти с самого начала своей карьеры, занимаюсь оптимизирующими компиляторами. Я начинал в Intel, потом перешёл в Azul Systems, год провёл в Cadence и вернулся обратно, всё это время занимаясь компиляторными оптимизациями для Java, C++ и нейросетевых моделей. На момент написания статьи у меня чуть за 900 патчей в LLVM, большинство из них посвящено цикловым оптимизациям.
За это время я провёл десятки собеседований на позиции как интернов, так и инженеров сеньорного уровня, и довольно часто люди, приходя на эти собеседования, многих вещей не знают или знают поверхностно. И я подумал: а мог бы я написать такой цикл статей, чтобы человек, прочитав их, узнал бы всю ту базу, которая, на мой собственный взгляд, необходимо начинающему компиляторному инженеру? Очень бы хотелось, чтобы новичку в этой области можно бы было дать один (относительно небольшой по объёму) набор текстов, чтобы он получил оттуда всё необходимое для старта. Это не перевод, текст оригинальный, поэтому в нём могут быть ошибки и неточности, которые я буду рад исправить, если вы мне их укажете.
Итак, поехали.
Интервью с создателем C++ STL, 1995 г. Часть 1
Алекс, расскажите нам что-нибудь о вашем cтоль длительном интересе к обобщённому программированию.
Я начал размышлять об обобщённом программировании в конце 70-х, когда заметил, что некоторые алгоритмы зависят не от конкретной реализации структуры данных, а лишь от небольшого числа существенных семантических свойств этой структуры. Так что я начал рассматривать самые разные алгоритмы, и обнаружил, что большинство из них могут быть абстрагированы от конкретной реализации так, что эффективность при этом не теряется. Эффективность является для меня одной из основных забот. Глупо абстрагировать алгоритм таким образом, что, когда вы его задействуете получившуюся реализацию, он становится неэффективным.
Потратили $50'000 на создание интерактивного QA-учебника, перевели на русский и выложили бесплатно
В январе пять международных QA-менторов с суммарным опытом 100+ лет опубликовали первую часть бесплатного интерактивного QA-учебника на английском языке, состоящего из 500+ страниц, 42 модулей, 42+ наборов тестов с 150+ вопросами. Про этот релиз 0.0.5 мы писали в Хабр-статье "Зачем появился бесплатный интерактивный «100-years QA-textbook» на 500+ страниц для обучающихся тестированию".
С тех пор вышел полный англоязычный релиз 0.0.9 всего учебника и выяснилось, что в результате его объем - 700 страниц (без учета изображений и тестов).
А 30 апреля вышел первый релиз и на русском языке. Который тоже лежит в свободном доступе, полностью бесплатен и даже не требует регистрации для начала обучения.
Жизнь замечательных айтишников – Андрей Ершов
Он мечтал стать физиком-ядерщиком, но помешала биография. Зато стал одним из первых программистов в СССР, стоял у истоков создания автоматизированного программирования, предугадав вектор развития информационных технологий на много лет вперёд.
Сегодня памятный день – 19 апреля 1931 года родился Андрей Петрович Ершов – советский ученый, программист. В честь очередной годовщины рождения Андрея Петровича, постараюсь рассказать, что он сделал для отечественного программирования.
Волей случая
Есть байка, что ещё в детстве Андрей поставил перед собой цель — решить все задачи из школьных учебников по алгебре, физике и геометрии, и с легкость выполнил задуманное. Затем, поступить на физмат в МГУ захотел не просто так, уж очень ему хотелось сдать все три экзамена (физика, алгебра, геометрия) – тоже вышло, так в 1949 году он стал студентом МГУ - планировал изучать ядерную физику, но этой мечте уже не суждено было сбыться. Физика, да еще и ядерная в те годы предмет особого внимания со стороны государства, а значит изучать ее разрешено не всем. Несмотря на достойные знания и желание, Ершову этого сделать не разрешили, виной тому досадный факт из биографии.
В 1937 г. семья переехала в город Рубежное, поскольку отца Андрея направили работать на местный химкомбинат. Там они прожили 6 лет. Когда началась немецкая оккупация, Ершовы переехали в Кемерово вместе с эвакуированным химкомбинатом, но факт, что Ершов с родителями был на оккупированной территории помешал дальнейшему обучению на физмате.
Какого провайдера VPS выбрать для собственного сервера в 2023 году. Платим за всё российской картой
Иметь свой VPS для VPN довольно выгодно. Нет ограничений по количеству клиентов, можно обеспечить VPN подключением всех своих родных, друзей и знакомых. При этом можно за это платить 160-300 рублей в месяц. И если общедоступные VPN вовсю банятся по DNS и IP, то личные VPN пока что избегают этой участи.
Минусы есть, это администрирование сервера и отсутствие разнообразия географии.
Для VPN нужен зарубежный сервер, а с зарубежными сервисами в России уже больше года есть проблемы с оплатой. Но есть российские компании, которые предоставляют зарубежные сервера и при этом им можно платить с помощью российской карточки.
Я зарегистрировался в дюжине провайдеров, до покупки VPS дошёл у пяти. А после тестов остались только трое.
Нестабильный Wi-Fi? MikroTik покупай, частоту на нём автоматом меняй
В настоящее время интерференция наиболее актуальна для диапазона 2.4 ГГц, который перенасыщен работой вездесущих точек доступа. В статье я рассмотрел, какие возможности по исследованию радиочастотного спектра имеются на борту RouterOS, сформулировал рекомендации по выбору рабочей частоты точки доступа, работающей в сети без контроллера, а также предложил авторскую реализацию её автоматической смены. Предыстория такова, что ко мне обратилась компания Coffee Cup, у которой имеется сеть точек продаж формата кофе с собой, размещённых в разнокалиберных торговых центрах различных городов. Для работы кассового оборудования жизненно необходима работа Wi-Fi именно в диапазоне 2.4 ГГц, который, как следует ожидать, сильно зашумлён даже в огромных ТРЦ. Проблема оказалась настолько острой, что периодически устройства не могли нормально выйти в интернет, войдя в пике попыток переподключений к точке доступа. Вот в этом контексте и будет идти повествование, с отвлечением на моделирование других ситуаций.
В России всего 2000 проектировщиков чипов. Что с этим делать?
Согласно статье Ивана Покровского «Возможности и проблемы отечественной микроэлектроники», в России всего две тысячи разработчиков микросхем. Для сравнения: в каждой крупной международной электронной компании есть несколько команд, работающих над чипом или над IP, в каждой по паре сотен разработчиков (хотя бывает и меньше ста, и больше тысячи).
Две тысячи человек — это мало для любого сценария развитии России:
1. Как для сценария, в котором санкции будут сняты и российские компании будут безпроблемно работать с TSMC и западными партнерами для разработки маркетируемых на мировом рынке чипов.
2. Так и для сценария, в котором российские разработчики будут строить экосистему проектирования в условиях изоляции, ориентироваться на производство микроконтроллеров и встроенных микросхем на зеленоградском Микроне, а также на сотрудничество в разработке semiconductor IP с китайскими производителями.
В других стран бывшего СССР ситуация еще хуже.
Что же делать? Для ответа на этот вопрос мы привлекли Машу Горчичко — выпускницу МИФИ, которая защитила диссертацию в Университете Вандербильда в Теннесси. Маша работала инженером в Роскосмосе, а сейчас работает в Кремниевой Долине, разработчиком в компании Applied Materials — одного из лидеров в оборудовании для производства микросхем.
Представим Машу, которая будет пояснять и иллюстрировать наши тезисы на видео. От себя прибавлю, что МИФИ — крутой вуз, в нем внутри есть ядерный реактор, а на входе стоит автоматчик:
Как в панельном доме заменить старый конвектор на новый радиатор, чтобы не пожалеть о полученном результате?
Идея этой статьи с сантехническим уклоном у меня возникла после просмотра в Ютубе видеоролика о монтаже нового секционного биметаллического радиатора при замене старого отопительного прибора типа «гармошка» в старой однотрубной системе отопления, которую с советских времён применяют в подавляющем количестве панельных домов.
В этом видосике сошлись в смертельной схватке два «блогера‑сантехника», каждый из которых считал, что только он прав.
По результатом этой баталии у меня возникли альтернативные решения, не совпадающие полностью ни с одним из дуэлянтов.
Своё видение решения я описал в комментариях к видеоролику, но ответа не получил. В итоге решил написать эту статью для прояснения сути проблемы широкой массе жителей панельных домов.
Особый интерес к этой теме у меня возник потому, что я сам лично как‑то собрался поменять такую старую облезлую «гармошку» (см.рис.1) на новый белый и красивы биметаллический радиатор (см.рис.2).
Один день из жизни JVM-инженера
Можно разрабатывать на Java, а можно разрабатывать Java. Есть люди, чей код исполняет виртуальная машина — а есть люди, чей код и есть виртуальная машина.
Вроде бы те и другие существуют в одной Java-экосистеме, но задачи совершенно разные. Поэтому редкое место, где они пересекаются и могут что-то поведать друг другу — Java-конференции. Мы проводим их регулярно (уже в апреле будет JPoint). И на предыдущей нашей конференции Иван Углянский dbg_nsk поделился с Java-разработчиками тем, как всё выглядит с его стороны.
Чем он вообще занимается? Почему JVM-инженеры всё так медленно делают? На каком языке стоит писать рантайм, а на каком компилятор? Как «папка бога» в Windows привела к неожиданным последствиям? Может ли «обычный джавист» стать JVM-инженером?
Поскольку все эти вопросы из доклада звучат интересно, мы решили для Хабра сделать его текстовую версию (а для тех, кому удобнее видео, прикладываем ссылку на ютуб). Далее повествование идёт от лица Ивана.
Насколько круто иметь свой сервер в комнате
Некоторые олды часто вспоминают эпоху до смартфонов, когда в студенческие времена или в школе у них был любимый настольный компьютер. Он стоял прямо в комнате, рядом с кроватью, и работал как личный ассистент в режиме 24/7: играл фоновую музыку (со специальным плейлистом, когда в гости приходили девушки), показывал фильмы, будил уведомлением из аськи или ирки, скачивал сайты ночью по диалапу и т. д.
Но кажется, что эта эпоха возвращается. Только на новом уровне. Сейчас опять стало очень круто иметь в комнате свой сервер, только он выглядит иначе и выполняет другие функции.
Что может сделать злоумышленник зная пароль от Госуслуг
На днях один мой знакомый получил звонок от работника ФНС с целью уточнить некоторые данные по декларации 3-НДФЛ на возврат бюджетных денег за лечение. Удивлению не было предела: мало того, что декларацию эту он не подавал (!) так и возврат уже был проверен и одобрен (!!), возврат средств предполагался на неведомый счёт в МТС-банке на его имя (!!!), нужно было лишь уточнить сущие пустяки. Небольшая, но поучительная история.
Почему Scrum не надо применять там, где не надо — ограничения и допущения фреймворка
Фрейморк Scrum в представлении не нуждается, и его преимущества многократно описаны. Однако о недостатках подхода говорят реже, и успешно применять его получается далеко не у всех. Зачастую после первых неудач команда разочаровывается в подходе и начинает считать его полностью бесполезной пустышкой. Но может быть дело не в самом Скраме, а в том, где и как его применили?
Попробуем рассмотреть, какие есть ограничения и допущения в применимости этого подхода, какие риски и предварительные условия нужно учесть.
Информация
- В рейтинге
- Не участвует
- Откуда
- Москва, Москва и Московская обл., Россия
- Зарегистрирован
- Активность