Даже небольшое преимущество продукта может принести существенную выгоду. Инженеры постоянно ищут новые способы оптимизации конструкций в существующих ограничениях, чтобы добиться лучших результатов. Так, Airbus в 2006 году анонсировал программу, которая позволила добиться прироста на ~4 процента в показателях эффективности для самолета A320. Отчасти благодаря этому с 2009 по 2016 года (до появления A320neo с новыми двигателями) компания нарастила продажи A320 на ~40% по сравнению с основным конкурентом. В мире будут доминировать те, кто смогут проводить оптимизацию быстрее и эффективнее. Так можно ли ускорить сам процесс оптимизации? В этой статье в блоге ЛАНИТ я бы хотел поделиться одним подходом к оптимизации конструкции, который позволит это сделать.
Пользователь
Популярности языков программирования в алгоритмической торговле
Алгоритмическая торговля — это высокотехнологичная и узкоспециализированная область, где успешное программирование и разработка стратегий могут напрямую влиять на финансовые результаты. Важно понимать, что простое определение популярности языков программирования на основе общего количества репозиториев на GitHub для задач, связанных с алгоритмической торговлей, может дать искажённое представление. Когда мы рассматриваем языки программирования, используя стандартные метрики, такие как общее количество репозиториев, мы можем прийти к ошибочным выводам. Давайте рассмотрим, почему это так.
Go: жарим общие данные. Атомно, быстро и без мьютексов
Как правило, в Go для безопасного доступа к общим данным используются мьютексы. Да, каналы тоже можно приспособить для изменения общих данных, так как они потокобезопасны, но это усложняет и замедляет логику.
Но в этой статье мы поговорим о другом. Современные процессоры имеют поддержку атомарных операций, что позволяет на основе них организовывать работу с общими данными до нескольких раз быстрее, чем с помощью общепринятых вариантов. Так как мьютексы реализованы на основе ОС, каналы сделаны на основе внутреннего кода Go с использованием тех же мьютексов из ОС под капотом, а атомарные операции делает сам процессор аппаратно за существенно меньшее количество тактов.
Фильтр Блума
У каждого разработчика есть набор инструментов для решения различных задач. Однако со временем возникает необходимость расширять этот набор, чтобы эффективно справляться с более сложными задачами. В этой статье я хочу познакомить вас с инструментом, которым вы, скорее всего, раньше не пользовались. И хотя он подходит для решения узкого спектра задач, его использование может оказаться весьма полезным. Знакомьтесь — "фильтр Блума" (Bloom filter).
Реализуем чистую архитектуру на Flutter с cubit
Соблюдать принципы чистой архитектуры – значит обеспечить удобство тестирования, поддержки и модернизации приложения. Понимание архитектуры и state management – это база, необходимая начинающему специалисту для успешной командной работы. В этой статье мы расскажем, как с помощью Cubit реализовать чистую архитектуру на примере стартового приложения Flutter – счетчика нажатий на кнопку.
Конфликтология в it
Конфликтология – это дисциплина, изучающая конфликты, их структуру, динамику, методы разрешения и предотвращения. В IT-сфере, как и в любой другой области, где работает множество людей с разными интересами и точками зрения, конфликты неизбежны.
Merlion Framework или как упростить работу с временными рядами
Единственная причина для существования времени — чтобы все не случилось одновременно.
Альберт Эйнштейн
Привет! Меня зовут Дмитрий, я дата-инженер в SM Lab, и в этом посте хочу рассказать вам о Merlion Framework. В посте мы рассмотрим его архитектуру, полезные функции и отличия от аналогов, разберём пару практических примеров, а также посмотрим, как всё считать и на какие метрики стоит обращать внимание.
В нашем мире время является незаметным четвертым измерением, по оси которого можно упорядочивать разные события.
Временной ряд – это набор данных, описывающих изменения какой-либо переменной во времени.
Задача анализа и предсказания временных рядов остаётся актуальной для бизнеса, ведь для успешного планирования возникает необходимость прогнозирования, например, следующих показателей:
Domain Driven Design в Go – это почти не больно
Как выглядят паттерны DDD (Domain Driven Design) в большом проекте? А самое главное, стоит ли их вообще использовать? Рассмотрим, какими инструментами можно реализовать DDD на Go и оценим, насколько это больно.
Меня зовут Илья Сергунин, я backend-сочинитель в Авито: занимаюсь тем, что передаю смартфоны в хорошие руки. В этой статье попытаюсь объяснить, как можно натянуть DDD на Go без синтаксического сахара и магии Java-подобных языков, и без больших крутых ORM c Data mapper, которые также отсутствуют в Go.
Ищем аномалии: доход, отношения и 10х-программисты
Вскоре после того как я, в сентябре 2013, начал вести блог (мне, студенту, тогда больше нечем было заняться), я поставил перед собой цель — писать по статье в неделю. В результате — со дня рождения моего блога и до того момента, когда я начал работать в Wave (тогда мне уже было чем заняться, в результате посты я выкладывал гораздо реже), я опубликовал примерно 150 материалов.
Результаты публикации этих 150 статей оказались очень и очень разными:
— Два поста оказались крайне успешными, добрались до главной страницы Hacker News (первый — о том, что произошло со всеми непрограммистами, второй — о читабельности, хакабельности и абстрагировании кода).
— Дэн Луу, после того, как увидел второй из вышеупомянутых постов, подписался на мой блог и начал слать на Hacker News многие мои материалы. В результате ещё штук 5 статей стали довольно-таки популярными. Это привело к приходу в мой блог первой волны подписчиков, с которыми я не знаком лично. Плюс — это дало мне серьёзную мотивацию писать дальше. Я и Дэн, в итоге, стали хорошими друзьями.
— Примерно 95% оставшихся постов получились совершенно непримечательными.
Это — очень типичный разброс результатов публикаций, на который могут рассчитывать блогеры: несколько «хитов» и куча «хлама». Через восемь лет я развил достаточно хорошее чутьё на то, какой пост найдёт отклик у читателей. В результате я смог почти полностью уйти от написания совершенного «хлама». Но, даже учитывая это, несколько моих лучших недавних постов (этот и этот) оказались гораздо успешнее других. Речь идёт о том, что многие делились с другими ссылками на них, и о комментариях к ним, вроде «то, что я узнал, сильно на меня повлияло».
Uniswap v3 Providing Liquidity (Перевод гайда)
Unisvaaaap start
Solidity: Путешествие в сердце оптимизации
Приветствую, кодеры Solidity!
Если вы здесь, то или у вас есть смарт-контракт, который готов к «похудению», или вы просто пытаетесь нарастить свои мышцы в области оптимизации Solidity. Как бы то ни было, сегодня я предлагаю вам навес золота в виде 27 проверенных методов оптимизации. Это ваш новый тренажерный зал для мозга! Всегда приятно иметь на руках свежий чек-лист перед запуском нового проекта. Итак, погнали!
Blockchain-разработка глазами Backend-разработчика
Я достаточно давно занимаюсь Backend разработкой и последние несколько лет, все больше и больше пишу разные блокчейн проекты (Solidity на EVM). Погружение в блокчейн мне давалось непросто и мой бэкендерский мозг несколько раз ломался, и я решил поделиться своим взглядом на погружение в блокчейн-разработку.
Попрощайтесь с проверками на null и исключениями: использование монады Maybe в Symfony
Функциональное программирование появилось не вчера. Но оно так и не приобрело какой-либо дикой популярности, и, вероятно, не просто так. Иногда оно может быть довольно сложным с точки зрения понимания и использования. Но у него есть много преимуществ. Одним из них является возможность избежать проверок на null и исключений.
В этой статье мы рассмотрим монаду Maybe и то, как ее можно использовать в Symfony.
Инструменты аудита команды
Когда тимлид / руководитель приходят в новую команду, перво-наперво им нужно разобраться, кто в ней есть, как они взаимодействуют, какого поведения ожидать от этой команды. Нужна какая-то линейка, чтобы все измерить и оценить.
Единой линейки нет. Но есть хорошие инструменты, которые могут в этом помочь.
Про них – предлагаю почитать.
Стохастический язык программирования на основе алгоритмов Маркова
MarkovJunior — это вероятностный язык программирования, в котором программы являются сочетаниями правил перезаписи, а инференс выполняется при помощи распространения ограничений. MarkovJunior назван в честь математика Андрея Андреевича Маркова, придумавшего и исследовавшего то, что сейчас называется алгоритмами Маркова.
Многомерные графики в Python — от трёхмерных и до шестимерных
Введение
Визуализация — важная часть анализа данных, а способность посмотреть на несколько измерений одновременно эту задачу облегчает. В туториале мы будем рисовать графики вплоть до 6 измерений.
Plotly — это питоновская библиотека с открытым исходным кодом для разнообразной визуализации, которая предлагает гораздо больше настроек, чем известные matplotlib и seaborn. Модуль устанавливается как обычно — pip install plotly. Его мы и будем использовать для рисования графиков.
Давайте подготовим данные
Для визуализации мы используем простые данные об автомобилях от UCI (Калифорнийский университет в Ирвине — прим. перев.), которые представляют собой 26 характеристик для 205 машин (26 столбцов на 205 строк). Для визуализации шести измерений мы возьмём такие шесть параметров.
Здесь показаны только 4 строки из 205
Загрузим данные из CSV с помощью pandas.
import pandas as pd
data = pd.read_csv("cars.csv")
Теперь, подготовившись, начнем с двух измерений.
Ловушки мышления, которые мешают пробить стеклянный потолок, но не всегда осознаются
Многим известен эффект стеклянного потолка, когда действия есть, а результата нет. Кажется, еще чуть‑чуть и все изменится: бизнес попрет, мастерство выйдет на новый уровень, доходы увеличатся, но несмотря на все усилия — ничего не меняется. Почему?
10 лет назад я продал свой стартап за $2.2M и погряз в депрессии
Меня зовут Виктор Кох и это моя история одного из громких скандалов в технологическом секторе.
Прежде всего, я рад опубликовать свою первую статью на HabrHabr.
Одна из причин, по которой я не мог свою историю написать ранее, а именно 5 лет назад или даже 8 лет назад — договор о неразглашении, который ограничивал мои действия 10 лет.
Часть пунктов запрета вышла из срока, а вот многие другие, которые раскрывают детали расследования служб находятсв под неразглашением на ещё 90 лет. Кто-то может смеяться, но такая практика существует в американском праве.
Итак, возвращаясь к теме, сегодня мне 35 лет и за моей спиной почти 18 лет опыта создания стартапов. Я начал программировать в 7 лет, благодаря моему другу детства, чей отец работал в МГТУ им. Н. Э. Баумана. Первые 25 тысяч долларов я заработал в 16 лет на продаже сайта, который специализировался по перепродаже телефонов и компьютерной техники — для меня это были огромные деньги в тот период.
Как алгоритм 1972 года спас наш проект и при чем тут Тарьян?
Я часто вижу в интернете дискуссии, а должен ли True-разработчик знать теорию алгоритмов и стандартные алгоритмы. Про алгоритмические собеседования вообще молчу - мнения на этот счет у всех разные, оно и понятно.
Как я помогаю себе справляться с незавершенными делами
У вас была ситуация, когда не получалось завершить какое-нибудь дело? Это мог быть рабочий проект, ремонт в спальне или желание сбросить ненавистные лишние килограммы? Если да, то замечали ли вы, что если мы начинаем (или хотим начать) дело, но не доводим его до финала, последствия сказываются не только на нас, но иногда и на окружающих?
Привет! Меня зовут Хусен Гапурхаев, я скрам-мастер в Beeline Казахстан, и в работе часто сталкиваюсь с необходимостью делать одновременно большое количество задач (причем как своих, так и в работе наших продуктовых команд).
В этой статье поделюсь, как помогаю себе справляться с незавершенными делами. Возможно, что-то из этого будет полезно и вам.
Information
- Rating
- Does not participate
- Registered
- Activity