Все потоки
Поиск
Написать публикацию
Обновить
1019.77

Программирование *

Искусство создания компьютерных программ

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

Как мы выследили регрессию использования памяти в продакшен-сервисах на Go 1.24

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

Команда Go for Devs подготовила перевод статьи о том, как команда инженеров выявила регрессию использования памяти в Go 1.24. Оказалось, что всего одна оптимизация в аллокаторе памяти, случайно потерянная при рефакторинге, заставляла Go «съедать» сотни мегабайт RAM. Но сообщество Go-разработчиков быстро нашло и устранило проблему.

Читать далее

Деструктуризация в JavaScript

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

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

Привет, Хабр! Меня зовут Александр Дудукало, я автор базового курса по JavaScript. В этом тексте на примерах разберемся, как работает синтаксис и как деструктуризировать массив. Подробности под катом!

Читать далее

Zen of Python: философия языка

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

Команда Python for Devs подготовила перевод статьи о Zen of Python — шуточном, но глубоком своде афоризмов, которые уже четверть века задают тон питонячей культуре. Как появился этот «питонячий декалог», зачем он нужен и стоит ли ему следовать?

Читать далее

Где поток ненужного софта? Почему заявления об ИИ-ассистентах не сходятся

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров26K

Я в бешенстве. Я реально зол. Зол настолько, что хочется сносить чужие песочные замки, зарядить Дэниэлю ЛаРуссо по физиономии и поливать его грязью перед его девушкойa.

Вообще-то я не из тех, кого легко разозлить, но ситуация в индустрии достала окончательно.

Читать далее

Терминал — ваш лучший друг: 5 утилит командной строки, которые заменят вам GUI

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

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

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

Читать далее

Пет-проект с AI-помощником: мой первый опыт вайбкодинга

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

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

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

В этот раз я решил пойти по трендам и подключить в процесс AI. Спасибо Хабру, что в нужный момент подкинул статью про Koda. С неё и начался мой эксперимент. А команде Koda хочу выразить респект за то, что всё бесплатно.

Читать далее

Next.js меня окончательно достал

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

Наконец, настал этот момент, и я решился написать статью. Давно хотел, но как-то не хватало мотивации. А ведь, знаете, как говорят: «гнев — лучший мотиватор». Есть же такое выражение?

Предыстория

Я приглашаю вас в путешествие, но сначала нужно расставить декорации. Представьте, что вы работаете в некой компании X, и один из ваших сервисов на Next.js крякнулся. Ну и поскольку это Next.js, то мы понятия не имеем, что конкретно произошло, так как логирование процессов по умолчанию включено только при разработке.

И теперь перед нами квест — найти и настроить механизм логирования для продакшена. Будет нелегко, но нам как бы не привыкать.

Читать далее

95% пилотных проектов в области генеративного ИИ в компаниях проваливаются

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

Несмотря на высокий интерес компаний к генеративному ИИ и его потенциал для роста выручки, подавляющее большинство корпоративных проектов терпит неудачу. Новый отчёт MIT указывает, что только 5% пилотных внедрений приносят ощутимый финансовый эффект. В переводе от команды Spring АйО рассмотрим основные причины, которые кроются не в самих моделях, а в ошибочной интеграции, неправильных приоритетах и нехватке адаптации под бизнес-процессы.

Читать далее

Почему так тяжело учить грамматику иностранного языка?

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

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

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

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

Первый способ особенно хорош для студентов языковых ВУЗов. Ребята туда идут подготовленные и высокомотивированные. Скажем, я, на первом курсе мехмата МГУ, встретил студентку первого курса МГИМО, которая, в свои 17 лет уже знала, в совершенстве, английский, французский и японский языки. На память, она оставила мне рисунок меня с надписью на катакане. Я даже собирался купить японско-русский словарь, чтобы прочесть ее послание, но, не судьба.

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

По большому счету, все упиралось в слабое знание грамматики, Да и словарный запас был недостаточным. Хотя, может быть, главным, все же, оказался недостаток мотивации, ибо вся она уходила на математику. По этой причине, нас очень любили студенты МГИМО, которые говорили, что: «Мы понимаем всех, кроме вас, математиков». Именно на нас они оттачивали свое мастерство ведения брифингов и пресс-конференций. И даже уговаривали задавать каверзные вопросы (это в те времена, когда, за прослушивание «Голоса Америки» можно было вылететь из Университета).

Читать далее

Аналог вложенным функциям на языке программирования Си

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

Полноценной замены вложенным функциям в языке программирования Си нет, но есть несколько способов, как их можно симулировать. Чаще всего в вложенных функциях нам важно то, что код определяется там же, где передаётся в качестве функции обратного вызова. Иногда этот код бывает настолько мал, что выносить его в отдельную функцию в глобальной области видимости смысла нет. Например, для сортировки массива по возрастанию с помощью функции типа qsort чаще всего достаточно такого кода: return e1 - e2;. Вынести его в отдельную функцию в глобальной области видимости, а затем ещё придумывать корректное название — так себе удовольствие. Вложенные функции, добавленные в GCC как расширение, могли бы решить эту проблему, но такой код не будет работать на других компиляторах языка Си.

Читать далее

ThinkFun: от революционера STEM производителя до стабильного бренда под крылом Ravensburger

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров820

В 1985 году небольшая компания ThinkFun начала с простой идеи — делать обучение увлекательным через игры, которые развивают ум, а не просто развлекают. За десятилетия она выросла в мирового лидера STEM-игр, создавая хиты, которые учили логике, физике и даже программированию — без экранов и скучных уроков. Её игры вдохновляли миллионы детей по всему миру, превращая сложные науки в захватывающие приключения. Но путь от гаражного стартапа до глобального бренда оказался не таким простым, как казалось. А сейчас, похоже, даже вступил в период стагнации. Давайте посмотрим на хронологию событий.

Читать далее

Миша — консольный SSH клиент

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

Миша - консольный SSH клиент, который в будущем перерастет в полноценную утилиту для удобно взаимодействия с удаленным компьютером по SSH

Читать далее

Что такое детерминизм и как с ним бороться?

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

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

Много лет можно наблюдать один и тот же ритуал: человек берёт фиксированный seed, торжественно записывает его в три места, запускает обучение и искренне ожидает, что всё будет повторяться до бита. А потом accuracy скачет на третьем знаке, лосс уплывает и приходит вопрос: «Почему не детерминируется?» А потому что детерминизм в ML это не один флажок. Это сумма десятка мелких факторов, от выбора алгоритма в cuDNN до порядка файлов в каталоге.

Читать далее

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

Кубистая планета — делаем шарообразный мир в стиле Minecraft

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

Вооружившись игровым движком Unity, я написал техническое демо, в котором пытаюсь наложить кубические воксели Minecraft на шарообразное тело (планету). Планета генерируется процедурно, и её можно полностью разрушить. Игроки могут расставлять или убирать разные блоки, которых насчитывается более 20 типов.

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

Читать далее

Как мы в Java-проекте UDT для PostgreSQL поддерживали

Уровень сложностиСложный
Время на прочтение33 мин
Количество просмотров2.7K

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

В статье мы разберёмся, как передавать и получать вложенные объекты в процедурах и функциях PostgreSQL с помощью JDBC.

Читать далее

Бесконечные циклы. Всё, что может пойти не так — пойдёт не так

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров5.1K

Конструкции типа while(true) или for(;;) довольно опасные. Когда люди их пишут, то всегда надеются на то, что сработает условие выхода из цикла. Однако, на самом деле, как бы мы ни были уверены, такие конструкции лучше избегать.

В любом программном продукте есть баги, и те инварианты, на которые идёт расчёт, могут просто не сработать. Решение? Читайте в переводе от команды Spring АйО, где автор указывает примеры того, как с этими конструкциями поступили в Jooq и как с ними работает один из департаментов University of California.

Читать далее

Что с Python? Меньше производительности, никакого сахара и больше багов

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

Python продолжает меняться, но не всегда так, как ждёт сообщество. Новый синтаксический сахар отклоняют, прирост производительности оказывается скромнее обещанного, а очередные депрекации в setuptools ломают проекты. При этом экосистема получает долгожданный стандартный lock-файл и поддержку uv в Dependabot. В статье разбираем, что это значит на практике и почему начинающим Python-разработчикам важно следить за этими изменениями.

Читать далее

Чудесная история Генри Шугара

Уровень сложностиСредний
Время на прочтение2 мин
Количество просмотров1.2K

Это фильм. «Чудесная история Генри Шугара». В 2023 года. Я сделал красочные цвета. Вот что получилось. Ну что? Что вы думаете? «Кислотные телепузики»? :-)

Фильм получил премию «Оскар» в 2024 года. Вот полной ffmpeg:

Читать далее

Как превратить SQL в API на Go?

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

Команда Go for Devs подготовила перевод статьи о том, как превратить SQL в полноценный API прямо в Go. Автор показывает, как можно безопасно принимать WHERE-условия в виде SQL-подзапросов, валидировать их и использовать для запросов к базе. Просто, элегантно и почти без лишнего кода.

Читать далее

Как мы Best Practices в Java анализатор внедряли

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

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

Читать далее

Вклад авторов