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

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

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

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

Изучаем freeware вирус на ПК

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

Данная статья описывает вирус, который живет на компьютерах с Windows с точки зрения программиста. Посмотрим как он устроен и внедряется в систему.

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

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

Новости

Как мы создали HR-приложение и выиграли 250 тыс. рублей в хакатоне

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

Привет! В этой статье узнаете, как студенты Университета МИСИС создавали HR-приложение, выиграв с ним 250 000 рублей в хакатоне «Лидеры цифровой трансформации. Якутия». Сервис отслеживает активность сотрудников на рабочем месте, анализирует ее и прогнозирует вероятность увольнения. Разработка признана полноценным коммерческим продуктом — её можно успешно внедрить в любой офис в качестве комплексного инструмента управления персоналом.

Читать далее
Всего голосов 7: ↑2 и ↓5-1
Комментарии7

Язык программирования Кедр. Продолжение

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

Рассмотрим синтаксис, обработку ошибок, взаимодействие с языком С и возможности реактивного программирования.

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

Java Digest #13

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

Всем привет! 👋 👋 👋👋

Мы Java-разработчики Т-Банка: Андрей, Арсений, Константин и Константин. Собираем интересные новости, статьи, туториалы и другие материалы из мира Java-разработки и делимся этим со всем сообществом.

В этом выпуске: первые JEP, направленные в JDK 23, введение в Graal VM, состояние экосистемы Java на 2024 год. Посмотрим несколько интересных релизов: мажорную версию Kotlin 2.0, открытие раннего доступа к IntelliJ IDEA 2024.2 и предрелизную версию Spring AI 1.0.0. Погрузимся в JDK Mission Control, познакомимся с дата-ориентированным программированием через серию статей авторства Nicolai Parlog и разберемся в том, какой JDK выбрать для всего проекта.

Читать тринадцатый выпуск
Всего голосов 13: ↑12 и ↓1+12
Комментарии1

Истории

Подборка видео с последнего SREcon24

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

Всем привет меня зовут Максим, я SRE инженер в группе компаний Тинькофф.
И я продолжаю делать подборки видео с SRECon, которые показались мне интересными

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

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

Где лучше всего пробовать идеи для обучающихся систем?

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

Для того, чтобы разобраться в сложной и объемной теме машинного обучения, попробовать свои силы и отточить навыки, оптимально подходит библиотека scikit-learn (sklearn).

Читать далее
Рейтинг0
Комментарии0

Коротко о «внезапном» релизе Zig версии 0.13.0

Время на прочтение3 мин
Количество просмотров800

Резкий и дерзкий релиз версии 0.13.0. Очень удивил своей внезапностью. Нововведений немного, потому коротко. Но есть заметные изменения. О них чуть детальнее. Критически релиз связан с выходом LLVM версии 18. Эндрю Келли хотел скорее выпустить версию для синхронизации. Потому такой быстрый релиз. У вас может возникнуть вопрос, ведь я вроде указывал в прошлой статье, что произойдёт отказ от LLVM? Не так быстро это происходит. Повторюсь, релиз слишком «внезапный», чтобы произошли такие серьёзные изменения. По найденной информации (спасибо чатику в телеге) полного отказа всё же не произойдёт. Будет опциональная возможность подключать LLVM на тех платформах, где нет внутренней поддержки. В общем win-win ситуация.

Штош. К новостям...
Всего голосов 5: ↑5 и ↓0+5
Комментарии0

Катастрофа с Hibernate 6.5 при обновлении на Spring Boot 3.3.0

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

Обновившись до Spring Boot 3.3.0 (конкретно до Hibernate 6.5), мы столкнулись со 100% загрузкой процессора на БД из-за небольшого изменения в SQL коде, сгенерированного Hibernate после преобразования JPQL в SQL.

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

Как я компьютер в Minecraft построил

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

Решил я, значит, изучить, как работают компьютеры на самом низком уровне. Это тот уровень, где работают всякие железяки, транзисторы, логические элементы и так далее. Чтобы полностью закрепить материал, я решил построить простенькую ЭВМ на редстоуне в Minecraft. Эта статья о том, как работают ЭВМ на уровне логических элементов и о том, как я построил прототип такой ЭВМ в Minecraft. В конце я оставил ссылку на GitHub-репозиторий с проектом.

Читать далее
Всего голосов 41: ↑40 и ↓1+47
Комментарии13

Основы TypeScript

Время на прочтение22 мин
Количество просмотров5.4K
image Привет, Хаброжители!

TypeScript — популярная надстройка над JavaScript с поддержкой статической типизации, которая наверняка покажется знакомой программистам на C# или Java. TypeScript поможет вам сократить количество ошибок и повысить общее качество кода на JavaScript.

«Основы TypeScript» — это полностью обновленное третье издание классического бестселлера Адама Фримена. В нем освещены все возможности TypeScript 5, включая новые, такие как декораторы. Сначала вы узнаете, зачем и почему был создан язык TypeScript, а затем почти сразу перейдете к практическому применению статических типов. Ничего лишнего! Каждая глава посвящена навыкам, необходимым для написания потрясающих веб-приложений.
Читать дальше →
Всего голосов 11: ↑10 и ↓1+15
Комментарии7

Java-рантаймы с точки зрения Spring Boot

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

На первый взгляд, выбор правильного Java-рантайма для вашего проекта на Spring Boot может показаться тривиальным. В конце концов, все популярные рантаймы основываются на коде OpenJDK и предлагают одинаковые программные интерфейсы (от англ. Application Programming Interface).

Но не все рантаймы реализованы одинаково. В этой статье мы обсудим различные показатели, которые могут повлиять на ваше решение выбрать определенный дистрибутив Java для Spring Boot приложения.

Оригинал статьи написан на английском языке Aleksey Stukalov, который является Team Lead’ом проекта IntelliJ IDEA в компании JetBrains, и Catherine Edelveis, работающей Developer Advocate в компании BellSoft, в соавторстве.

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

Пишем веб-компонент для svg иконок

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

Всем привет! Сегодня мы рассмотрим один из вариантов интеграции svg иконок в наш фронтенд проект используя веб-компоненты. Основная идея компонента заключается в том, чтобы лениво подгружать в SVG спрайт иконки и переиспользовать уже загруженные иконки при необходимости. Сами иконки будем вставлять в разметке в виде <svg-icon name="arrow-angle-down"> нам понадобится всего сотня строк кода! Кому интересна реализация, прошу под кат!

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

AOP в Golang: как рефлексировать, и почему вам не стоит этого делать

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

Я java-программист по профессии и алкоголик go-developer по зову души. И вот в один прекрасный день я подумал о том, что раз уж в Go есть пакет reflect, то должны быть и способы АОП, прямо как в java. Если вкратце, я захотел генерировать обертки для функций в рантайме, позволяя красиво оборачивать логи, мониторинги, трейсинги, и прочие довольно однотипные штуки, по аналогии с тем, как я проделывал это в java.

Если вам стало интересно, что у меня из этого вышло, добро пожаловать под кат!

Читать далее
Всего голосов 8: ↑7 и ↓1+10
Комментарии9

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

Конференция HR API 2024
Дата14 – 15 июня
Время10:00 – 18:00
Место
Санкт-ПетербургОнлайн
Конференция «IT IS CONF 2024»
Дата20 июня
Время09:00 – 19:00
Место
Екатеринбург
Summer Merge
Дата28 – 30 июня
Время11:00
Место
Ульяновская область

Lazy Loading в Java

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

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

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

Как и наши хвостатые друзья, существует такой паттерн как Lazy Loading, который позволяет экономить ресурсы, инициализируя объекты только тогда, когда они действительно нужны.

Рассмотрим, как мы можем применить этот котиковый подход в Java. Будем как котики — умными, экономными и эффективными!

Читать далее
Всего голосов 8: ↑4 и ↓4+1
Комментарии5

Сверхскоростные связные списки

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

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

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

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

Мы начнём с азбучной реализации, а потом будем постепенно её оптимизировать и рассматривать, как это отразится на производительности.

От читателя поста ожидается, что он на базовом уровне понимает Rust, обычные структуры данных, а также концептуально представляет, как выделяется память (в стеке и куче).

Дополнение (14.05.2024): Я учёл поступившую обратную связь и подчеркнул, какие идеи объективно плохи, прояснил некоторые отступления и удалил идею о imbl.

Чтобы было проще прослеживать этапы реализации и исследовать код, отсылаю вас к репозиторию, сопровождающему этот пост.

Читать далее
Всего голосов 13: ↑12 и ↓1+17
Комментарии1

Новый комплексный подход к разработке в Bitrix на D7

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

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

Покажу как работать с bitrix cli внутри компонентов, покажу как писать тесты и browserlist, чтобы наш CSS и JS собирался согласно browserlist.

Покажу как возвращать через ajax именно компоненты Bitrix с их стилями и скриптами.

И напишем простой компонент на примере этого подхода.

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

Пайплайны в GitLab для микросервисов

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

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

Начнем с основ на примере монолитного приложения, а потом усложним их микросервисами и постараемся избавиться от однотипного кода. А еще…
Читать дальше →
Всего голосов 45: ↑45 и ↓0+57
Комментарии2

Ловушки volatile, DCL и синхронизации в Java

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

А что если окажется, что простые знания на самом деле более нюансированные, а старые знакомые, такие как Double-checked locking, являются неоднозначными? Именно на такие мысли наталкивает изучение кода реальных проектов. Результаты этого исследования мы и рассмотрим в этой статье.

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

Быстрый интерфейс, быстрый деплой

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


Салют! Не так давно создатели знаменитого pydantic выпустили новый фреймворк — FastUI, который позволяет создавать пользовательские интерфейсы с помощью декларативного кода на Python. В этой статье рассмотрим создание простого приложения и деплой его в Cloud Apps.
Читать дальше →
Всего голосов 15: ↑14 и ↓1+18
Комментарии4

Оптимизация Go: как повысить скорость и эффективность кода

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

Привет, Хабр! Меня зовут Макс, я Go-разработчик в компании SimbirSoft. Язык Go (Golang) стремительно набирает популярность, он всё чаще внедряется в существующие программные решения, а также встречается в стеке новых проектов. Высокая производительность и скорость работы – его главные преимущества, поэтому для реализации бизнес-задач он подходит как нельзя кстати. Go легко поддерживается и отлично годится для создания MVP, из-за чего востребованность в нём растёт.

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

Мы начинаем!

Go ⏩
Всего голосов 8: ↑7 и ↓1+6
Комментарии8
1
23 ...

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