Обновить

Все потоки

Сначала показывать
Период
Уровень сложности

90% программистов совершают эти ошибки. Как писать на Angular грамотно

Уровень сложностиСредний
Время на прочтение12 мин
Охват и читатели12K

Давайте начистоту. Большинство Angular-приложений пишутся по инерции. Мы используем паттерны, которые выучили на заре второй версии, и продолжаем тащить их за собой, игнорируя всё, что фреймворк предложил за последние годы. 

Фреймворк постоянно обновляется и дополняется, и уследить за всеми лучшими практиками почти нереально. В итоге даже опытные разработчики продолжают делать ошибки, которые когда-то не считались ошибками. В небольшом проекте это не страшно, но в крупном такие просчеты накапливаются и превращают код в трудноподдерживаемый легаси. Проблема в том, что фреймворк меняется, а привычки остаются.

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

Читать далее

Анатомия левиафана: как работают ЦОДы и в чём разница между Tier

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели11K

Для рядового пользователя ЦОД — это место, где хранятся фотографии и обрабатываются запросы ИИ-помощников. Однако это сложнейший инженерный организм, функционирующий на стыке термодинамики, электротехники, гидравлики и цифровой логики. Под катом попробую за одну статью объяснить вам логику работы дата-центров и рассказать, что вообще означают магические Tier. 

Читать

Региональные дата-центры в России сейчас: на что это вообще похоже, и правда ли, что за МКАДом жизни нет

Время на прочтение6 мин
Охват и читатели6.5K

Вот так выглядит ЦОД в Новосибирске

В целом для коммерческих ЦОДов — правда, но есть и нюансы.

Начнём с суровой реальности. У нас вся экономика, все деньги и штаб-квартиры сосредоточены в Москве и Петербурге. Дальше, особенно если смотреть за Урал, с точки зрения коммерческих ЦОДов — пустыня. Да, там есть богатый Екатеринбург, да, там есть Новосибирск, да, там есть Владивосток с его международной торговлей, но потребности в коммерческих ЦОДах нет.

Это классическая проблема курицы и яйца. Коммерческий ЦОД строить там невыгодно, потому что нет клиентов, а клиентов нет, потому что нет нормальных ЦОДов.

В регионах живут в основном каптивные ЦОДы. Это когда условная налоговая или какой-нибудь гигант вроде «Норникеля» строит объект чисто под себя. Им вообще всё равно, где строить: они делают по потребности, а не по условиям. Если госзаказчику по плану нужно построить ЦОД во Владимире или Ярославле — они построят там. Им не нужно бегать по рынку и искать заказчика, у них стопроцентная загрузка своими же расчётами или данными. Производственники могут построить хоть в тундре, и вопрос окупаемости за счёт внешних арендаторов там не стоит.

А вот если ты хочешь построить коммерческий объект для сдачи стоек в аренду, то тут вступают в силу другие законы. В регионах просто нет такого объёма экономики, чтобы окупить полномасштабный ЦОД. Считается, что в регионе есть смысл начинать стройку, только если у тебя есть предзаказ («якорь») минимум на 60% мощностей. Если этого нет, то ты построишь коробку, которая будет генерировать убытки.

Но начинается всё с дешёвого электричества, конечно. Оно важнее, чем аплинки.

Читать далее

Разбор инцидента с разрушением кабины обслуживания стартового комплекса 31/6 на Байконуре

Время на прочтение4 мин
Охват и читатели11K

27 ноября после запуска ракеты-носителя «Союз-2.1а» с экипажем и кораблём «Союз МС-28» со стартовой площадки 31/6 космодрома Байконур произошла авария. Запуск прошёл успешно, и экипаж в составе космонавтов Роскосмоса Сергея Кудь-Сверчкова и Сергея Микаева, а также астронавта НАСА Кристофера Уильямса благополучно прибыл на МКС. Однако беспилотник, пролетавший над стартовым комплексом, зафиксировал, что на стартовое сооружение упала кабина обслуживания 8У216.

Читать далее

Chrome, Xfce и очень страшное кино

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели15K

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

Читать далее

Открытие кода часов Pebble: что это значит для проекта

Время на прочтение5 мин
Охват и читатели10K

Программное обеспечение умных часов Pebble стало полностью открытым. Эрик Мигиковски, создатель проекта, объявил, что теперь любой желающий может скачать исходные коды, собрать нужные приложения и при желании изменить их под свои задачи. Что это значит? Все просто — устройство, которое формально давно снято с производства, получает шанс на вторую жизнь. В этой статье разбираемся, что именно открыли, зачем и что будет дальше.

Читать далее

Canon Navigator HD-40 — раритетный компьютер с факсом, сканером, принтером и необычным GUI

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели9.9K

Что такое «моноблок», прекрасно знает каждый из нас. Каким-нибудь iMac или устройством под управлением Windows уже давно никого не удивишь, однако в первой половине 90-х смелая инженерная мысль некоторых разработчиков простиралась гораздо дальше банальной идеи скрестить монитор с системным блоком. Например, специалисты из компании Canon решили совместить в одном корпусе не только монитор с компом, но еще и факс с телефонным аппаратом и принтер. На выходе получился странный гибрид под названием Canon Navigator HD-40, которым предполагалось оборудовать рабочее место секретарей. Впрочем, для идеального инструмента секретарши в комплекте поставки не хватало еще встроенной кофеварки, все остальное, кажется, заботливые инженеры предусмотрели.

А что эти гении предусмотрели?...

Фокусы, хаки, магия и прочее ненормальное программирование на C

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели8.6K

Доброго времени суток, господа и дамы! Иногда у некоторых людей возникает желание заняться откровенным непотребством в программировании — то, что не несет практической пользы напрямую, но помогает развлечься. И я — не исключение. В этой статье я хочу рассказать вам о лайфхаках, трюках (магических и не очень), алгоритмах на языке C!

Идея написать эту статью зародилась из моего поста, после него я написал статью «Математика, биты, магия и немного ненормального программирования на C», которая раскрывала много интересных моментов. Увидев, что многим понравилась, я задумался: почему бы не изучить еще какие-нибудь трюки, заодно практикуясь в программировании на C? В этой статье мы погрузимся глубже и раскроем больше тем, такие как генераторы псевдослучайных чисел, трюки с побитовыми сдвигами и прочие быстрые алгоритмы на C!

Всех, кто заинтересовался — прошу под кат.

Читать далее

Achievement Unlocked: Xbox 360 — 20 лет

Уровень сложностиПростой
Время на прочтение16 мин
Охват и читатели9.6K

22 ноября Xbox 360 исполнилось аж двадцать лет. И хоть «некстген» у многих по сей день в первую очередь ассоциируется с Playstation 3, Xbox 360 стала первой консолью седьмого поколения, которое окончательно сформировало образ современных видеоигр.

Читать далее

Повышение прочности FDM-печати

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели12K

Картинка: freepik.com

Что первым приходит в голову, когда кто-то говорит «3D-печать»? Ок, у всех разное :-). 

Но те, кто в теме и сами занимались или занимаются ею, знают, что одной из основных проблем любительской печати является прочность готовых изделий.

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

Читать далее

Как менеджеры становятся причиной ИТ-катастроф

Уровень сложностиПростой
Время на прочтение15 мин
Охват и читатели11K

«Зачем беспокоиться о том, чего не произойдёт?»

Этот вопрос председателя КГБ Чаркова из сериала «Чернобыль» может стать хорошей эпитафией для сотен закончившихся катастрофами проектов по разработке, модернизации и эксплуатации ПО. Провалы в этой сфере происходят везде, они не зависят от страны и размеров компаний. Они случаются в коммерческих, некоммерческих и государственных организациях, вне зависимости от статуса и репутации.

За двадцать лет мировые траты на ИТ в расчёте на доллары 2025 года увеличились втрое, с 1,7 триллиона до 5,6 триллиона, и продолжают расти. Несмотря на дополнительные траты, показатели успеха за эти годы повысились незначительно. Из-за этого потери бизнесов и общества становятся всё серьёзнее, ведь ПО проникает во всё большее количество аспектов нашей жизни.

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

Как я говорил двадцать лет назад, причинами краха проектов часто становятся крах человеческого воображения, нереалистичные или несформулированные цели проектов, неспособность справиться со сложностью проекта или неучтённые риски. Всё это регулярно приводит к ИТ-катастрофам и сегодня. Существует и множество других причин, часть которых выявил глава кафедры бизнес-технологий Школы бизнеса Университета Виллановы Стефен Андриоле; его диаграмма, показанная ниже, впервые была опубликована в Forbes в 2021 году. Было бы крайне удивительно обнаружить проект, потерпевший крах каким-то уникальным, незадокументированным ранее образом, потому что подавляющее большинство таких неудач вызваны вполне преодолимыми факторами, за десятки лет изложенными в сотнях отчётов, научных исследований, технических книг и учебников по управлению. Читая литературу о таких катастрофах, часто испытываешь дежавю.

Читать далее

Программируемое зарядное устройство Кулон 830

Уровень сложностиПростой
Время на прочтение11 мин
Охват и читатели13K

Привет, Хабр! По многочисленным просьбам, сегодня мы изучим и испытаем долгожданную новинку — продвинутое зарядное устройство, пришедшее на смену снятому с производства Кулону 912.

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

Также устройство снабжено функцией разрядной нагрузки для проведения контрольно-тренировочных циклов.

Читать далее

Мультиагентная разработка в Cursor: как заставить субагентов работать на большие проекты

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели21K

Как можно Cursor IDE превратить в полноценную мультиагентную среду разработки, где каждый AI‑агент выполняет роль члена команды: аналитика, архитектора, планировщика или разработчика?

Как обеспечить высокий уровень автономности, когда система не просто отвечает на запросы, а сама движется от высокоуровневой постановки задачи к результату?

Как добиться сходимости к стабильному результату в ходе длительной самостоятельной работы команды ИИ-агентов?

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

Читать далее

Ближайшие события

Бытовой UX, или зачем в стиралке иллюминатор

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели13K

Как проектировщик интерфейсов я люблю смотреть по сторонам и подрезать best practices не только у Apple и Google, но и у осязаемых физических вещей. Иногда мы воспринимаем привычное удобство как должное и перестаем его замечать — это показатель хорошего интерфейса! Однако проектировщикам полезно иногда переставать быть пользователями, отстраняться и оценивать даже самые привычные решения. Сегодня под мой UX-разбор попал иллюминатор в стиральной машинке: кому, зачем? Почему? Давайте разбираться.

Читать далее

Запускаем почтовый сервер на VPS под Windows

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели12K

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

Во-первых, бесплатный сыр только в мышеловке.

Во-вторых, на своём сервере можно развернуть инфраструктуру для уникальных и очень полезных сервисов, которые никогда не разрешит корпорация. Например:

анонимные почтовые алиасы, с которых почта форвардится на ваш адрес, так что для каждого сайты вы генерируете уникальный email, не засвечивая основной;

почтовые рассылки для тысяч читателей, в том числе с платной подпиской.

И это только начало.

Читать далее

Замена GPU в ноутбуках

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели14K

В перспективе нескольких лет у нас только два необходимых апгрейда в ноутбуке: увеличить RAM и заменить GPU. Остальное по желанию. Видеокарта становится проблемой, если мы хотим играть в современные игры. Представьте, как здорово было бы проапгрейдить GPU в ноутбуке! Просто заменить одну на другую, как в ПК.

Почти два года назад вышел Framework 16, очередная версия модульного ноутбука [Framework]. Посмотрим, как разработчики реализовали быструю замену GPU через отсек расширения, и станет ли такой отсек стандартом для всех ноутбуков.

Читать далее

30 лет без проводов: Wi-Fi готовится к юбилею. Часть 2

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели13K

В этой статье мы продолжим изучать историю технологии Wi‑Fi. В прошлый раз мы остановились на то, что внимательно изучили передовую технологию 802.11a и очень расстроились, что она не снискала популярности. Но ведь в один год с ней вышла и другая версия стандарта — 802.11b. Что с ней?

Читать далее

«Конечно, вот ответ на ваш вопрос. Но сначала — реклама»

Время на прочтение5 мин
Охват и читатели13K

OpenAI начала внутреннее тестирование рекламы внутри ChatGPT. Это шаг, который может перекроить всю современную веб-экономику.

Кажется, эпоха цифрового альтруизма подходит к концу. Утечка подтверждает, что OpenAI переходит к внедрению рекламы внутрь ChatGPT. До этого момента ChatGPT был отделен от маркетинга и рекламных баннеров. В отличие от Google поиска, где реклама напрямую влияет на то, что вам выдает поисковик, ChatGPT оставался «чистым».

В коде бета-версии приложения для Android (сборка 1.2025.329) появились упоминания AdTarget ApiSearchAd BazaarContentWrapper SearchAd и прочие.

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

Читать далее

Fizz Buzz на косинусах

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели7.8K

Fizz Buzz — это игра с числами, которая стала неожиданно популярной в мире компьютерного программирования в качестве простой проверки базовых навыков. Правила игры просты: игроки вслух произносят по порядку числа, начиная с единицы. Если число делится на 3, игрок должен сказать вместо него «Fizz». Если число делится на 5, он должен сказать «Buzz». Если оно делится и на 3, и на 5, игрок говорит «FizzBuzz». Вот типичная программа на Python, выводящая нужную последовательность:

for n in range(1, 101):

if n % 15 == 0:

print('FizzBuzz')

elif n % 3 == 0:

print('Fizz')

elif n % 5 == 0:

print('Buzz')

else:

print(n)

А вот её вывод: fizz-buzz.txt. Можно ли усложнить эту программу? Слова «Fizz», «Buzz» и «FizzBuzz» повторяются в этой последовательности периодически. А что ещё у нас есть периодического? Тригонометрические функции! Возможно, нам удастся при помощи этих функций закодировать все четыре правила последовательности в выражении в аналитическом виде. Именно эту задачу мы и исследуем в статье, получив в конце дискретный ряд Фурье, который может получить любое целочисленное n и выбрать для печати соответствующий текст.

Читать далее

Выгоняем китайцев из розетки: переезд умного дома на Zigbee2MQTT и Home Assistant

Время на прочтение3 мин
Охват и читатели18K

Все началось с того, что я хотел включить свет в туалете, а он включился через три секунды.

У меня стоял шлюз Xiaomi, датчик движения Aqara и какая-то ноунейм релешка. Схема работала так: датчик видит меня -> сигнал летит в Китай на сервер Xiaomi -> там скрипт думает -> сигнал летит обратно ко мне в квартиру -> свет включается.

В тот момент я понял две вещи.

Первая: я не хочу, чтобы товарищ майор из Пекина знал, как часто я хожу в туалет.

Вторая: мой дом не должен превращаться в тыкву, когда провайдер проводит плановые работы.

Ниже рассказ о том, как я выкинул все проприетарные шлюзы, купил один свисток и поднял Home Assistant.

Читать далее