Сегодня разбираем, что не так с кривой обучения GNU Emacs, и почему многие бросают его, так и не разобравшись.

Текстовые редакторы и IDE *
Подручные инструменты для разработки кода
От кода к смыслу: улучшенная панель Structure в IntelliJ IDEA 2024.3

Совсем недавно вышла IntelliJ IDEA 2024.3 – последний мажорный релиз IDE в этом году. И одним из самых важных нововведений этой версии стала улучшенная панель Structure.
Команда Spring АйО перевела статью Siva Katamreddy (Developer Advocate в JetBrains), в которой Siva рассказывает, как улучшенная панель помогает решать задачи, и делится историей создания этой функциональности.
Расширения VSCode для комфортной работы с проектами
Для работы с проектами существует куча редакторов кода и IDE (VSCode, NeoVim, SublimeText, WebStorm и т.д.). В данный момент наиболее популярны VSCode и Webstorm и у каждого есть свои плюсы и минусы. Webstorm является примером прекрасного IDE от компании JetBrains, где многие вспомогательные модули идут “из коробки”. К сожалению, сейчас нет возможности легально получить доступ к этому продукту гражданам России, поэтому многим приходится искать альтернативу. Такой альтернативой вполне может стать Visual Studio Code от компании Microsoft, который имеет открытую кодовую базу, полностью бесплатный и гибко настраиваемый под ваши нужды. В данной статье мы рассмотрим пример настройки рабочего пространства VSCode для комфортной работы с нашими проектами. Я покажу вам, какими расширениями я пользуюсь для лучшего удобства и продуктивности. Эти расширения я использую давно и они хорошо зарекомендовали себя, но возможно некоторые из них могут не подойти под ваш стиль работы и написания кода. Итак, начнем!
Когда есть разница регистров, но это не верхний и не нижний регистры?

Если вы начнёте изучать стандарт Unicode, то, к своему удивлению, можете обнаружить некоторые символы, имеющие различия в регистре, при этом они сами по себе ни в верхнем, ни в нижнем регистре.
У-у-у-у, загадочно и пугающе.
Иными словами, это символ c, обладающий следующими свойствами:
toUpper(c) ≠ toLower(c), однако
c ≠ toUpper(c) и c ≠ toLower(c).
Поздравляю, вы обнаружили таинственный третий регистр: Title case.
Неформатированный текст не так уж прост

Когда мы взаимодействуем с текстовым файлом при помощи редактора, то, что мы видим, не всегда отражает содержимое файла. Да, содержимое файла с неформатированным текстом — это байтовые коды, закодированные в таких форматах, как ASCII, UTF8 и UTF16, и в этих байтовых кодах находится источник истины. Но в конечном итоге, именно текстовый редактор выбирает, как интерпретировать и отображать пользователю источник истины (двоичные коды). Это значит, что два файла могут выглядеть одинаково или один и тот же файл может выглядеть по-разному в зависимости от редактора.
Текстовый редактор может подсвечивать (или нет) отдельные части на основании распознанного им синтаксиса, может управлять отображением табов (2 пробела, 4 пробела или даже 8). Он решает, как кодировать нажатие клавиши Tab, например, как \t
или как заданное количество пробелов. То же относится и к нажатию на клавишу Enter для создания новой строки — будет ли она кодироваться как \n
(UNIX) или \r\n
(Windows), зависит от конфигурации редактора.
Текстовый редактор скрывает подробности, чтобы пользователю не пришлось слишком много думать. Однако довольно часто такие подробности протекают сквозь защитный слой, который пытается создать редактор. И мы часто не замечаем подобные тонкости, пока не столкнёмся с ними.
Основная цель моей статьи — поделиться своим опытом и проблемами, с которыми можно столкнуться, работая с неформатированным текстом.
Не играй в догонялки со Spring — Explyt Spring plugin для IDEA Community

Всем привет. После моей предыдущей статьи о Maven плагине, где я предложил новый подход к реализации и создал свою версию для IDEA (вместо того чтобы писать свой мини-мавен, я делегировал всю основную работу ему посредством Maven плагина), меня пригласили работать над Spring плагином в IT-стартап Explyt. Компания занимается автоматической генерацией тестов на базе AI и формальных методов. В процессе работы столкнулся с проблемами, похожими на те, которые решал в своем Maven плагине. У меня возникло некое дежавю, и я подумал: почему бы не использовать подобный подход, чтобы доработать и улучшить Dependency Injection Explyt Spring плагина? Текст для тех, кто работает со Spring-плагинами и хочет разобраться, как эффективно применять готовую логику Спринга для новых задач. Заходите под кат, подробно поделюсь своим кейсом, покажу код, расскажу про итерации и объясню логику.
Zettelkasten и Obsidian: ваш помощник в структурировании знаний

Представьте себе систему, которая поможет вам организовать и связывать все ваши идеи, проекты и задачи так, как если бы у вас появился второй мозг. Узнайте, как Zettelkasten и Obsidian помогают программистам и исследователям максимально эффективно работать с информацией.
Переходим с STM32 на GD32

Микроконтроллеры STM32 и GigaDevice GD32 часто сравнивают из-за схожей архитектуры и совместимости. GD32 является своеобразным «клоном» STM32, использующим такое же ядро ARM Cortex-M. Основное отличие между ними — это цена, так как GD32 обычно дешевле, что делает его привлекательным для проектов с ограниченным бюджетом. Однако несмотря на схожесть, существуют различия в характеристиках и уровне поддержки, которые могут повлиять на выбор между этими двумя семействами микроконтроллеров.
Рабочая C++ IDE в docker container

Привет, хабр! Программирую на C++ / Qt / QML в среде разработки QtCreator уже 6-ой год. У меня есть определенные пересечения мыслей с мозгом груга и еще мне постоянно хочется избавиться от глупой и рутинной работы, которая есть на разных этапах разработки. Одна из таких работ - возня с IDE и рабочим окружением, особенно в мире C++ разработки. В статье постараюсь раскрыть проблему и описать свой текущий подход к решению.
Markdown Editor: WYSIWYG и markup-редактор на базе Gravity UI

Привет, Хабр! Меня зовут Сергей Махнаткин, я работаю разработчиком в отделе User Experience в Yandex Cloud. В прошлом году мы писали о нашей дизайн-системе и библиотеке компонентов Gravity UI. С тех пор система не раз обновлялась и обрастала новыми функциями, и сегодня я хочу рассказать о новом инструменте — Markdown Editor, который значительно упрощает процесс работы с документацией.
Поговорим об истории создания пользовательского интерфейса, архитектурных особенностях и технических деталях интеграции и разработки собственных расширений, а потом — почему всё это доступно в опенсорсе.
Улучшаем автокомплит в смешанных Java-Kotlin проектах

Недавно я наткнулся на статью, где описывается, как можно убрать мешающие варианты из автокомплита в Android Studio. Но тот способ касается только классов — с методами у меня так же не получилось, и тогда мне пришла идея.
Obsidian+Github вместо Notion: синхронизация, бекап и версионность (3-в-1)

О том, как сделать прозрачную синхронизацию заметок Obsidian между устройствами (Desktop, Android, iOS) через GitHub:
1. Без сторонних приложений (вроде iCloud, SyncThing, Termux и пр)
2. Бесплатно
3. Бонусом — резервная копия: как самих заметок, так и истории изменений.
В результате получается полноценная замена Notion: структурированные заметки с автоматической синхронизацией между устройствами.
IntelliJ IDEA 2024.3 EAP: Новые Возможности и Улучшения

Команда Spring АйО рада поделиться с вами свежей новостью от JetBrains: стала доступна первая EAP-версия IntelliJ IDEA 2024.3. Среди нововведений улучшения для java и kotlin, прокаченный AI Assistant, а также улучшенный UX.
Ближайшие события
Бложим как фрики
Сидишь бывало, записываешь всякие штукуёвины, которые сам вечно забываешь и вдруг кааак захотелось начать наносить людям добро и причинять радость вопреки их желаниям, а тут ещё и народ периодически спрашивает, стало быть надо завести блох, но не в свитере, а который будет удобный, быстрый, защищённый, красивый и не будет зависеть от модных веяний на очередной платформе-однодневке, не будет обмазан странными всплывашками, баннерами, пропагандой...
Будет обмазан Markdown, Hugo, GitHub (в качестве CD и халявного хостинга) и Obsidian
Игрострой. С чего начинать

Привет всем! Меня зовут Ш. Сергей!
Я очень не хотел создавать подобные темы. И уже есть темы которые я уже создавал и там многое уже написано. А так же есть множество подобных тем, где люди написали больше меня и вероятно для кого-то более полезно чем я. Это и не удивительно, ведь я программист на Pascal/Assembler, от которых сейчас многие открещиваются как только могут.
В этой статье я постараюсь затронуть тему для всех ЯП и в своём большинстве для начинающих программистов. Так как именно они зачастую будут стоять перед выбором: "с чего же начинать?"
Что нового в IntelliJ IDEA 2024.2

Недавно вышла новая версия IntelliJ IDEA 2024.2, в которой появилось довольно много новых фич. Команда Amplicode подготовила обзор основных возможностей IDE, которые на данный момент доступны российским разработчикам без каких-либо ограничений.
Обзор LSP: что это такое, зачем нужно, как работает

Представьте: у вас есть N редакторов или IDE и M языков программирования. Получается, что для их корректной работы вам необходимо поддерживать N*M плагинов. Но что, если таких редакторов и языков много?.. Решением может стать LSP — единый интерфейс взаимодействия языкового сервера и редакторов, который помогает сузить проблему до N+М.
Меня зовут Денис Маматин, я работаю в отделе R&D СберТеха. Наша команда занимается разработкой и тестированием новых технологий. В этой статье я расскажу, что такое LSP‑протокол, как он поможет упростить разработку, и рассмотрю небольшой пример LSP‑сервера.
Новый AI UI дизайнер для «Silverlight» приложений

Мы занимаемся разработкой фреймворка OpenSilver — opensource наследника платформы Silverlight. В версии 3.0 мы добавили современный UI дизайнер в Visual Studio расширение и сделали веб-версию дизайнера.
Не используйте Lombok с JPA, пока не прочтете эту статью

Lombok — действительно отличный инструмент. Одна строчка кода, и все ваши JPA сущности перестают корректно работать ;) Но это только в том случае, если вы не знаете, какие фичи Lombok можно использовать вместе с JPA, а какие лучше не стоит.
В этой статье я расскажу про большинство подводных камней, с которыми можно столкнуться, используя Lombok вместе с JPA, и про то, как их обойти используя Amplicode.
Выявление bidirectional unicode троянов

Двое специалистов в своей довольно старой публикации Trojan Source: Invisible Vulnerabilities описали одну из интересных атак, суть которой заключается в следующем: при просмотре исходного кода вы видите одно, но при компиляции в конечном приложении будет реализована совсем другая логика. Суть атаки проста: не все редакторы кода отображают unicode символы и рецензенты кода их попросту не увидят. Для реализации атаки необходимо использовать определенные символы в кодировке unicode, которые заставляют компилятор читать исходный код в другом направлении либо вызывать совсем другие функции.
Вклад авторов
glaschenko 247.0AKlimenkov 231.0Bright_Translate 218.8kesn 212.0neodavinchi 165.0spring_aio 162.9toxicmt 136.0honest_niceman 125.0alexander-shustanov 114.3befayer 96.4