Как стать автором
Обновить
0
0

Пользователь

Отправить сообщение

Борьба с ветряными мельницами: ветроэнергетика и глобальное потепление

Время на прочтение7 мин
Количество просмотров9.6K

В 2022 году исполняется 50 лет со времен публикации знаменитого документа «Пределы роста», подготовленного Римским Клубом. Это был обзор технологических и общественных тенденций, характерных для конца XX века – в целом сводившийся к мысли, что гибкость рынка и бережливое отношение к природе не компенсирует ее истощения. В 2014 году на русском языке вышла книга «Пределы роста: 30 лет спустя». Значительное внимание в книге уделяется возобновляемым источникам энергии, в частности – солнечным батареям и ветрофермам. Рисунок 3.15 из этой книги демонстрирует, что к началу XXI века стоимость солнечного кВт⋅ч в целом стабилизировалась после многолетнего нисходящего тренда, а стоимость ветряного кВт⋅ч продолжала снижаться.

Вне Хабра нам довелось затронуть эту тему с уважаемым @SLY_G, и он навел меня на интересные источники и идеи, указывающие на чрезмерный оптимизм по поводу ветроэнергетики, ее краткосрочных эффектов и углеродного следа. Скептические оценки крупномасштабной ветроэнергетики впервые получили научное обоснование в 2011-2013 годах – правда, пока они основаны в основном на эмпирических догадках и компьютерном моделировании. Далее я хотел бы раскрыть эту тему подробнее.

Читать далее
Всего голосов 30: ↑22 и ↓8+20
Комментарии41

Trunk Based Development — кто такой и зачем нужен

Время на прочтение5 мин
Количество просмотров38K

Привет! Меня зовут Павел Лакосников, я тимлид команды бэкенд-инженеров в Авито. Сегодня расскажу про свой любимый подход к разработке Trunk Base Development, сравню его с другими моделями ветвления и подсвечу его достоинства и нюансы.

Краткий обзор трёх моделей ветвления: Central Workflow, Git Flow, Trunk Based Flow, с акцентом на моего фаворита — Trunk Based Flow.

Читать далее
Всего голосов 27: ↑22 и ↓5+21
Комментарии44

Волновые генераторы обещают самую дешевую и чистую в мире энергию. Но можно ли этому верить?

Время на прочтение7 мин
Количество просмотров19K

При создании солнечных и ветряных электростанций возникает значительное количество отходов, в том числе и токсичных. Гидроэлектростанции разрушают русла рек и затапливают окружающие территории, нанося вред природе. Атомная энергетика — производит радиоактивные отходы. Сжигание нефти и газа — понятно, загрязняет атмосферу. Казалось бы, что ни делай, а если мы будем развивать человечество, Земля будет засоряться всё больше и больше. Пока единственным выходом не станет сесть на ракету Илона Маска и улететь подальше в космос, где ещё будет чисто.

Это огромная дилемма: что нам делать в ближайшие нескольких столетий? Пока что, как ни посмотри, перспективы выглядят довольно печальными. Если в крупных городах Китая баллоны с чистым воздухом, которым можно дышать, — уже один из ходовых товаров, то что будет дальше?

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

И, кажется, есть один вариант, у которого почти нет недостатков. Безлимитное пространство для эксплуатации, самое большое на Земле. И минимум вреда для окружающей среды, даже если развернуть эту технологию в гигантских масштабах.

Читать далее
Всего голосов 26: ↑21 и ↓5+22
Комментарии54

Kafka как интеграционная платформа: от источников данных к потребителям и в хранилище (часть 1)

Время на прочтение12 мин
Количество просмотров10K

Привет! Меня зовут Илья Макаров, я работаю архитектором решений и в статье расскажу про архитектуру цифровой платформы НЛМК, из каких компонент, помимо Apache Kafka, она состоит, к каким соглашениям по именованию топиков и договоренностям по передаче данных мы пришли, как всем этим управляем.

А это сразу ссылка на часть 2.

Читать далее
Всего голосов 23: ↑23 и ↓0+23
Комментарии2

Чем интересуется западная молодежь (в микроэлектронике)

Время на прочтение5 мин
Количество просмотров12K

Design Automation Conference (DAC) - главная выставка софтверных компаний, которые создают средства проектирования чипов. Именно на ней появляются стартапы, которые определяют проектирование через 10-15 лет (например появление Synopsys на рубеже 1980-1990-х привело к появлению iPhone в середине 2000-х).

На DAC помимо выставки и официальных докладов есть также и poster session - молодые исследователи из университетов вывешивают в виде плакатов, чем они занимаются. Я методически сфотографировал все постеры во время последней конференции DAC в Сан-Франциско, и вот перед вами картина маслом:

(я также выложил версию этой заметки с большими картинками - если вы хотите покопаться детальнее, а не просто обозреть с птичьего полета, это лучше делать там)

Больше про нейросети и трояны,но не только
Всего голосов 29: ↑27 и ↓2+32
Комментарии30

20 млн рублей в год на парсинге сайтов

Время на прочтение10 мин
Количество просмотров32K

Меня зовут Максим Кульгин, моя компания (xmldatafeed) занимается парсингом сайтов в России порядка четырёх лет. Ежедневно мы парсим более 500 крупнейших интернет-магазинов в России. Теперь делимся опытом с вами. Так как тема парсинга часто привлекает внимание и вызывает эмоции (в массе негативные), подготовил статью, где ответил на основные вопросы (их получилось 43) с которыми сталкивались в процессе работы и, надеюсь, развеял некоторые мифы.

1. Можно ли зарабатывать на парсинге? Да. Мы стали активно заниматься этим бизнесом в 2018 году и с тех пор к счастью растем. Привожу открытые налоговые данные. В 2022 году надеемся, что результат будет чуть лучше.

Читать далее
Всего голосов 71: ↑61 и ↓10+74
Комментарии82

Пишем на Rust игры для Unreal Engine

Время на прочтение7 мин
Количество просмотров13K
image

Ссылки



Введение


Несколько месяцев назад я задался вопросом: что, если написать игру на Rust, но в качестве рендерера использовать Unreal? Поразмыслив, я пришёл к выводу, что раскрытие рендерера Unreal языку Rust при помощи FFI (Foreign function interface) языка C потребовало бы гораздо больше усилий, чем мне хотелось. Но что, если просто надстроить систему на Unreal? Я смогу просто перемещать акторов (gameobject из Unreal) при помощи Rust. Эта задача показалась гораздо более приемлемой, поэтому я приступил к работе.

Спустя неделю я раскрыл несколько функций, позволявших получать ввод, задавать и считывать позицию актора. Благодаря этому я наконец мог перемещать персонажа в Unreal.
Читать дальше →
Всего голосов 31: ↑31 и ↓0+31
Комментарии7

Примеры кошмарного программирования вокруг нас. Выученная беспомощность

Время на прочтение6 мин
Количество просмотров40K

Нет в мире совершенства. Куда ни глянь — всюду костыли и компромиссы. Вроде каждый в отдельности хочет сделать как лучше, но чем больше участников — тем сильнее хаос…

Возьмём классический пример — реестр Windows. Этот странный артефакт инженерной мысли представляет некое подобие иерархической БД для хранения абсолютно всех настроек — и системных, и приложений, и драйверов. Центральное бинарное хранилище заменило массу файлов .ini, разбросанных по всей системе и должно было упростить жизнь. Но вышло наоборот. И глядя на монструозный тормозящий конструкт, возникает только один вопрос: как это исправить? Ответ тоже простой: «Если вкратце, то никак». И так во всём. Мы создаём монстров, а потом не можем от них избавиться.
Читать дальше →
Всего голосов 80: ↑63 и ↓17+67
Комментарии184

Дефолт США: почему о нем никто не говорит, хотя он происходил уже пять раз

Время на прочтение6 мин
Количество просмотров58K

Доллар и госдолг США во всех финансовых учебниках приводятся в качестве примера «безрискового» актива с наивысшей надежностью. Но не все знают, что Дядя Сэм допускал дефолт не раз, и даже не два. В этой статье мы немножко занырнем в финансовую историю Америки, а также выясним – насколько реальна угроза дефолта Штатов сейчас.

Читать далее
Всего голосов 180: ↑146 и ↓34+146
Комментарии815

Можно, но лучше не стоит: разбираемся в связях между объектами, функциями, генераторами и сопрограммами

Время на прочтение15 мин
Количество просмотров9.8K

Давайте проведём исследование некоторых взаимосвязей функций, объектов, генераторов и корутин в Python.

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

Предупреждаю: мы рассмотрим рабочие, но очень странные примеры кода; я не советую вам применять их в реальных проектах!

Читать далее
Всего голосов 6: ↑6 и ↓0+6
Комментарии0

Что должен знать дата-инженер. Роадмап для джуниора

Время на прочтение7 мин
Количество просмотров33K

Привет, username! Меня зовут Иван Васенков и я джуниор дата-инженер в дирекции данных и аналитики Lamoda. Но к этой профессии я пришел не сразу: окончив университет, я начал работать аналитиком данных, затем стал BI-разработчиком, а уже после этого — дата-инженером.

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

Читать далее
Всего голосов 23: ↑21 и ↓2+22
Комментарии11

Без одной faangи или как я проходил собеседования

Время на прочтение14 мин
Количество просмотров30K

Привет, Хабр! Меня зовут Рустам, работаю программистом 9 лет. 7 лет работал в Контуре и около 2 лет в Яндексе. В этой статье расскажу про свой опыт подготовки и прохождения собеседований в большие технологические компании, поделюсь рекомендациями.

Пробовался в Facebook, Apple, Amazon, Microsoft, Google. Пять попыток: четыре на бэкенд программиста, одна на инженера по инфраструктуре. Два предложения по работе, два отказа, одно потенциальное предложение.

Принял предложение в Amazon. Сейчас в Лондоне.

Читать далее
Всего голосов 69: ↑66 и ↓3+76
Комментарии27

Что читать разработчику C++

Время на прочтение6 мин
Количество просмотров28K

В этой подборке — не только классические рекомендации книг для C++ программистов. Обычно советуют издания про паттерны, развитие стандарта или успехи большой компании. Но за всем этим изобилием «экспертных советов» и best practices теряется одна простая мысль: язык программирования — это средство выражения мысли от одного разработчика другому, а также средство описания пользовательского API в самом широком смысле.

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

Первые 5 книг этой подборки — в меньшей степени про технику, в большей степени об осознанности деятельности C++ программистов любого уровня. Остальные — «золотой фонд» классической литературы для C++ разработчиков.

Читать далее
Всего голосов 95: ↑85 и ↓10+76
Комментарии16

Магия ssh

Время на прочтение12 мин
Количество просмотров64K

Разве что ленивый не писал про ssh и несмотря на это, данный протокол и его возможности не перестают меня восхищать. Здесь я хочу поделиться исключительно своим опытом использования сего замечательного инструмента в своих задачах (При этом активно применяю его даже при разработке на Windows).

Поскольку я программист, то инструментарий ssh часто нужен мне в разработке и для личных нужд. Самые частые задачи, которые я выполняю с его помощью (по частоте использования):

  • Удалённый доступ — логично, ведь для этого он и предназначался.
  • Монтирование папок по сети — очень удобно для работы с кодом на удалённой машине.
  • Удалённое выполнение команд — нечастая, но используемая мной операция. Удобно получать выхлоп команды в канал другой команды на текущей машине.
  • Запуск графических приложений на удалённой машине.
  • Проксирование трафика — способ перенаправления трафика. Этакий быстрый и простой аналог VPN.
  • Обратный ssh — использую для проброса портов к системам, находящимися за NAT, когда лень настраивать firewall.

Далее вкратце разберу каждый пункт, и особенно пути эффективного и простого использования под Windows.
Читать дальше →
Всего голосов 82: ↑74 и ↓8+89
Комментарии131

Основы Linux (обзор с практическим уклоном)

Время на прочтение14 мин
Количество просмотров285K

Привет, Хабр!

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

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

Читать далее
Всего голосов 59: ↑55 и ↓4+68
Комментарии44

Асинхронное программирование в однопоточных средах JavaScript

Время на прочтение52 мин
Количество просмотров30K

Асинхронное программирование в однопоточных средах JavaScript


Моя прошлая обучающая статья Введение в Redux & React-redux набрала больше 100к просмотров. Что же это не может не радовать меня. И поэтому я решил порадовать и вас написав очередную статью по JavaScript. Хотя если честно я не хотел больше писать статьи поскольку это довольно сложно, занимает уйму времени и сил, а еще мне не платят за всю эту научную работу. Так что следующую статью я напишу только если эта наберет 150к просмотров.

Оглавление


1. Введение в асинхронное программирование
2. Цикл событий
3. Отложенное выполнение кода с помощью setTimeout setImmediate и process.nextTick
....3.1 setTimeout
....3.2 setImmediate
....3.3 process.nextTick
4. Устаревшие паттерны асинхронного программирования
5. Promise
....5.1 Основы Promise
....5.2 Методы экземпляра Promise
........5.2.1 Promise.prototype.then
........5.2.2 Promise.prototype.catch
........5.2.3 Promise.prototype.finally
....5.3 Композиция и цепочки промисов
........5.3.1 Графы промисов
........5.3.2 Параллельная композиция промисов с Promise.all и Promise.race
........5.3.3 Серийная композиция промисов
6. Асинхронные функции
....6.1 Остановка и возобновление выполнения
....6.2 Стратегии для асинхронных функций
........6.2.1 Реализация Sleep
........6.2.2 Максимизация распараллеливания
........6.2.3 Серийное выполнение промисов
........6.2.4 Трассировка стека и управление памятью

1. Введение в асинхронное программирование

Читать дальше →
Всего голосов 17: ↑16 и ↓1+18
Комментарии10

15 игр, которые прокачивают логику, алгоритмы, ассемблер и силу земли

Время на прочтение8 мин
Количество просмотров103K


Есть «Super Mario», признанная классика видео игр. Есть «Doom», который запускают на чайниках и тестах на беременность. Есть супер-популярные по статистике twitch.tv игры («League of Legends», «GTA V», «Fortnite», «Apex Legends») которые стримят пятая часть всех стриммеров.

А есть игры, на которые очень мало обзоров, но они супер крутые — игры про алгоритмы. Игры, в которых можно кодить на ретро-компьютере; игры, которые надо взламывать; игры, где можно программировать контроллеры или поведение персонажей; игры, где можно создавать свою игру внутри игры.

Под катом подборка классных игр про алгоритмы за последние 10 лет. Если что-то упустила — буду рада дополнениям.

Еще я создала канал в Telegram: GameDEVils, буду делиться там клевыми материалами (про геймдизайн, разработку и историю игр).
Читать дальше →
Всего голосов 78: ↑73 и ↓5+88
Комментарии98

Функциональное программирование — это не то, что нам рассказывают

Время на прочтение17 мин
Количество просмотров125K

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



Хотя люди обычно признают удобства ФП фич, ведь намного приятнее писать:


int Factorial(int n)
{
    Log.Info($"Computing factorial of {n}");
    return Enumerable.Range(1, n).Aggregate((x, y) => x * y);
}

чем ужасные императивные программы вроде


int Factorial(int n)
{
    int result = 1;
    for (int i = 2; i <= n; i++)
    {
        result *= i;
    }
    return result;
}

Так ведь? С одной стороны да. А с другой именно вторая программа в отличие от первой является функциональной.


Как же так, разве не наоборот? Красивый флюент интерфейс, трансформация данных и лямбды это функционально, а грязные циклы которые мутируют локальные переменные — наследие прошлого? Так вот, оказывается, что нет.

Читать дальше →
Всего голосов 208: ↑200 и ↓8+251
Комментарии795

Мифология и реальные методы прагматичного программирования

Время на прочтение12 мин
Количество просмотров21K

В разработке цветет культ Карго. Многие программисты полагаются на слова, которые сказал какой-то очень уважаемый автор десятки лет назад. Они продолжают разрабатывать код, опираясь на подходы, которые либо не актуальны, и даже сам автор уже давным-давно поменял свою точку зрения. И сегодня мы поговорим о некоторых очень распространенных принципах программирования, которые не так однозначны, как может показаться на первый взгляд.

Меня зовут Кирилл Мокевнин, и я — сооснователь школы программирования Хекслет. За последние пару лет я провел собеседования с более чем 400 человек, потенциальными наставниками по совершенно разным направлениям в разработке. В результате у меня собралась большая выборка наблюдений, которые мы и разберем в этой статье.

Читать далее
Всего голосов 59: ↑54 и ↓5+64
Комментарии27

Kubernetes и другие оркестраторы

Время на прочтение13 мин
Количество просмотров43K

Привет! Меня зовут Леонид, я DevOps-инженер в компании KTS. 

В этой статье я рассмотрю различные оркестраторы и объясню, почему Kubernetes — лучший выбор.

Нашей компании уже 6 лет, и 4 из них мы живем с Kubernetes. До этого мы испытали все варианты деплоя приложений на серверах: начиная от простого git pull до ci/cd на нескольких серверах. 

За небольшой срок в 4 года мы набрали много опыта. Начинали с вопроса, который, возможно, стоит сейчас перед вами: «Какой оркестратор выбрать?» Мы рассмотрели разные варианты, и в итоге остановились на Kubernetes. В статье расскажу, почему.

Читать далее
Всего голосов 26: ↑26 и ↓0+26
Комментарии6

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность