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

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

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

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

Больше ИИ-инструментов, хороших и разных: Google представила помощника для написания кода

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

Всё больше компаний создают разнообразные ИИ-модели, и, конечно, крупные корпорации — впереди планеты всей. На днях Google представила свой новый проект — Gemini Code Assist, инструмент, который помогает разработчикам писать код. О том, что это за новинка и какие ей дали возможности — читайте под катом.

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

Обобщённые типы. Часть 1/3. Полиморфные типы высокого рода

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

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

Читать первую часть обзора
Всего голосов 12: ↑12.5 и ↓-0.5+13
Комментарии3

Не бойтесь бросать свои пет-проекты

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


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

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

Мы слышим столько историй об успешных личных проектах, но что, если более открыто говорить о тех, которые провалились? Многие из нас проводят ретроспективный анализ на работе, но не в отношении пет-проектов. А почему бы нам не пролить свет на всё то время, которое было вложено в начинания, которые так и не ожили? На заброшенное ПО, которое в своё время казалось хорошей идеей. По нашим средам разработки до сих пор скитаются духи захороненных каталогов node_modules.

И здесь я хочу рассказать о своём недавнем пет-проекте, который забросил в тот же день, в который запустил.
Читать дальше →
Всего голосов 53: ↑58 и ↓-5+63
Комментарии26

МРЭМ – 200. Электронный микроскоп родом из СССР. Цифровизация захвата изображения

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

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

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

За прошедшие годы микроскоп подвергся нескольким модернизациям, об одной из которых хочется рассказать. В 80-е годы  изображения с  мониторов микроскопа фиксировались для дальнейшего изучения и сохранения с помощью пленочного фотоаппарата. Для этого в комплекте с микроскопом шла специальная тубусная приставка, фиксирующаяся на мониторе. В третьем тысячелетии  мне хотелось, конечно, уже иметь компьютерный захват картинки, как в современных растровых микроскопах. В начале я пошел по самому простому пути: стал использовать цифровой фотоаппарат Canon вместо пленочного  фотоаппарата. Поскольку построение изображения в максимальном разрешении длится 41 секунду, мне пришлось перепрошить  фотоаппарат на такую длительную выдержку. Работа  с микроскопом  сразу стала комфортней, но  я понимал, что  есть еще  к чему стремиться.

В декабре 2022 года в Телеграмме я познакомился  с еще одним владельцем микроскопа МРЭМ-200. В  этой статье я буду, называть этого человека, по его просьбе, «Владелец МРЭМ-200 из Москвы, пожелавший остаться анонимным».  Он  решил проблему прямого компьютерного захвата, использовав  видео с youtube (https://www.youtube.com/watch?v=ruuxn2u3yao) известного  американского популяризатора науки Бена Краснова (Ben Krasnow). «Владелец МРЭМ-200 из Москвы, пожелавший остаться анонимным» творчески переработал информацию Бена Краснова, адаптировал софт под технические особенности  своего микроскопа  и  любезно поделился со мной этим софтом. У меня появилась программа, которая замечательно строила и сохраняла изображение на экране компьютера синхронно с изображением на родных мониторах микроскопа. Между компьютером и микроскопом добавился отдельный модуль согласования, в котором помещался АЦП с выходом USB и операционные усилители с регулировкой коэффициента усиления:

Читать далее
Всего голосов 47: ↑57 и ↓-10+67
Комментарии18

Это всё, что останется после меня: проблемы наследования кода и передачи прав на него

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

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

Читать далее
Всего голосов 15: ↑16.5 и ↓-1.5+18
Комментарии1

Баги, которые наделали немало шума

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

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

Читать далее
Всего голосов 17: ↑16.5 и ↓0.5+16
Комментарии16

Теорвер не нужен в играх, но это не точно

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

Теория вероятностей – одна из важных частей не только игрового дизайна, строго заскриптованые события без вариантов быстро вызовут скуку у игроков. У меня за спиной был всего один год этой дисциплины в универе, и не сказать, чтобы нужно было применять это каждый день, но когда надо объяснить базовые знания дизайнерам, то приходится сталкиваться с тем, что каждый дизайнер понимает теорию вероятности по-своему. Эти мои размышления появились после обсуждения с одним из коллег замечательной статьи Яна Шрайбера о неслучайных случайностях и сломанных ГСЧ в играх. Игры - это огромные недетерминированные системы, независимо от того, закладывали это в проект или нет. И понимание природы случайности для контролирование таких систем, которые влияют на опыт игрока, помогает создавать их так, чтобы они не казались прибитыми сбоку гвоздями. Если в системе есть случайность, нужно понимать как её изменить, приблизив её к бытовому пониманию игроков. И даже если все механики игры строго детерминированные - их взаимодействие дает случайный результат, в чём вы можете убедиться, посмотрев многочисленные видео по различным взломам игровых систем.

Читать далее
Всего голосов 9: ↑11 и ↓-2+13
Комментарии14

Евгений DockerAuthPlugin’ович Онегин

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

Интересное начало, не так ли? Меня зовут Роман, и я младший инженер информационной безопасности Ozon. В этой статье я расскажу о проблеме отсутствия авторизации доступа к Docker daemon / Docker Engine API / командам Docker при работе с контейнерами в экосистеме Docker и как это можно решить при помощи 11 почти стихотворных строчек bash.

Говоря о стихотворчестве, первое, что приходит мне в голову, это уроки литературы, где моим самым любимым романом был «Евгений Онегин». В школе учитель литературы говорила нам: «Это вы сейчас это не понимаете... Уже потом, спустя год, пять или даже 20 лет, вы вновь прикоснётесь к книгам, которые, казалось бы, вы уже знаете вдоль и поперёк. И вот тогда вы поймёте всё то, что мы с вами тут обсуждаем, или даже откроете для себя что-то, о чем и не догадываетесь».

Читать далее
Всего голосов 105: ↑104.5 и ↓0.5+104
Комментарии21

Почему Accelerate — это не страшно

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

Всем привет! Я Игорь Белов, iOS-разработчик в Тинькофф Бизнесе, выпускник Университета Иннополис и энтузиаст в области Computer Science. Занимаюсь iOS-разработкой почти четыре года, мне нравится изучать фундаментальные темы программирования и разбираться, как все работает под капотом.

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

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

Как большие языковые модели в Street Fighter играли

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

Что будет, если устроить совершенно новый тип тестирования для больших языковых моделей (LLM)? Например, выпустить несколько моделей на арену и заставить их соревноваться друг с другом?

Именно это я и решил сделать: столкнуть LLM друг с другом в классической аркаде Street Fighter III. Далее расскажу, как я создал эту арену и какие интересные наблюдения сделал во время битв LLM на виртуальных улицах Метро-Сити.

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

9 полезных крейтов в Rust

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

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

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

Крейты в Rust – это пакеты, которые можно использовать для расширения функциональности проектов.

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

И полгода не прошло: релиз Qt 6.7 и Qt Creator 13. Что нового и что изменилось?

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

В этом месяце много релизов, хороших и разных. Так, на днях компания Qt Company опубликовала релиз фреймворка Qt 6.7. Разработчики придерживаются прежней стратегии как по стабилизации работы, так и по увеличению функций ветки Qt 6. Поддерживается много платформ, включая Windows 10+, macOS 12+, Linux (Ubuntu 22.04, openSUSE 15.5, SUSE 15 SP5, RHEL 8.8/9.2, Debian 11.6), iOS 16+, Android 8+ (API 23+), webOS, WebAssembly, INTEGRITY, VxWorks, FreeRTOS и QNX. Подробности — под катом.

Читать далее
Всего голосов 12: ↑15.5 и ↓-3.5+19
Комментарии24

Путешествие в yarn

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

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

Наши бекендеры решили настроить резервную инфраструктуру на базе ресурсов «Яндекса». Мы, фронтендеры, задумались над альтернативой npm registry — источнику библиотек, фреймворков и других полезных в работе штук.

От нашей изначальной идеи — создания локального registry — мы пришли к yarn 2+. О том, как так получилось, и с чем мы столкнулись на этом тернистом пути, я сегодня и расскажу.

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

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

Что скрывается в коде игрового движка, написанного на Java?

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

Вы когда-нибудь интересовались игровыми движками, написанными на Java? В этой статье мы рассмотрим и проверим на наличие ошибок в исходном коде один из популярных игровых движков — jMonkeyEngine. Возможно, мы даже узнаем, почему игры пишутся на C# и C++, а не на Java.

Читать далее
Всего голосов 12: ↑14.5 и ↓-2.5+17
Комментарии8

Банановые шкурки на интервью Python-разработчика

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

В этой статье я, Евгений Бартенев, техлид и автор курса «Python-разработчик», возьму и рассмотрю не только те «банановые шкурки», которые периодически разбрасываю сам на собеседованиях, но и те, на которых поскальзывались мои коллеги, некоторые наши студенты, да и я сам.

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

Пишем калькулятор на Rust с GUI

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

Зачем еще один калькулятор? Да незачем, просто как тестовый проект для рассмотрения GUI-библиотеки.

Изначально я хотел попробовать такие крейты, как GPUI, Floem и Xilem, но первая, кажется, пока работает только под MacOS и Linux, вторая не позволяет установить иконку окну и кушает оперативы побольше Webview в Tauri, а до третьей я так и не добрался, узнав об Slint.

Об Slint есть всего несколько новостных постов на Хабре, поэтому, возможно, вам будет интересно посмотреть, что это такое.

Читать далее
Всего голосов 23: ↑24.5 и ↓-1.5+26
Комментарии84

Legacy: поддерживать нельзя переписать

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

Легаси — реальность любого программиста. Объясняем, как софт становится легаси и почему это нормально, а также какие существуют плюсы при работе с легаси. Не всегда стоит относиться к легаси как к проклятию, стоит взглянуть на него как на естественный этап жизненного цикла программного обеспечения. Меня зовут Алексей Рузин, я уже 27 лет работаю и знаю, как работать с легаси.

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

Сегодня расскажем, откуда оно берется, как удерживать его “в рамках” и чем оно может быть полезно для начинающих специалистов.

Читать далее
Всего голосов 10: ↑12.5 и ↓-2.5+15
Комментарии9

Ты — это то, как ты пишешь. Как расти через качество кода

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

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

Я Юрий Митус, фронтенд-разработчик в Сбере. Предлагаю поговорить о коде, который мы пишем, и практиках его улучшения. Расскажу, на что обращать внимание, покажу типичные ошибки, которые «портят» код и как их избегать. Научу писать код так, чтобы вас хотели нанять и перенять ваши практики.

Читать далее
Всего голосов 27: ↑23.5 и ↓3.5+20
Комментарии12

Какие будут зарплаты у программистов в 2024 году: у кого меньше, а у кого больше

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

Вот уже который год зарплаты представителей российского ИТ-сектора поражают своими контрастами в сравнении с остальными сферами. До сих пор вчерашний студент-программист через пару лет может получать в два раза больше, чем опытный врач. Многие ИТ-гуру зарабатывают как корпоративные магнаты, в то время как другие профессии отстают. Существует мнение, что этот экономический пузырь должен лопнуть, когда рынок насытится квалифицированными кадрами. Но это будет явно не в 2024 году. Мы собрали на Youtube-дискуссию экспертов из российских компаний и Amazon, чтобы попробовать предсказать, вырастет ли зарплата программистов в 2024 году и каким разработчикам стоит ожидать повышения доходов, а каким – нет.

Читать далее
Всего голосов 60: ↑62.5 и ↓-2.5+65
Комментарии61

Как создать свой Spring Boot 3 — стартер?

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

Допустим, Вы разрабатываете несколько приложений или микросервисов на Java. Каждое из них уникальное, и содержит свою собственную бизнес логику. Однако, в каждом из них может быть необходимость использовать общую логику. Например, логику аутентификации, как это часто бывает в мире микросервисов.

Spring Boot starter'ы - отличный способ управлять созданием, развитием и поставкой общей кодовой базы. О том как создать свой Spring Boot 3 стартер и поговорим в этой статье.

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

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