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

Текстовые редакторы и IDE *

Подручные инструменты для разработки кода

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

Создание PDF размером с Германию

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

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

Подобное утверждение появилось на просторах интернета ещё в 2007 году. Этот твит является характерным примером постов с аналогичным заявлением, в которых оно преподносится как твёрдый факт без каких-либо подтверждающих свидетельств или объяснений. То есть мы должны просто принять, что один PDF может покрыть лишь около половины площади Германии, и нам никак не объясняют, почему его магический предел составляет 381 километр.

Тут мне стало интересно – а создавал ли кто-нибудь такой большой PDF? Насколько это сложно? А можно ли сделать документ ещё больше?

Несколько лет назад я из праздного любопытства немного поигрался с PostScript, предшественником PDF, и это оказалось очень увлекательным! Ранее мне не доводилось изучать внутреннее устройство PDF, так что здесь у меня возник для этого хороший повод.

Приступим!
Читать дальше →
Всего голосов 95: ↑92 и ↓3 +89
Комментарии 25

Новости

Про Vim — Neovim (Lua) PHP IDE

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

По большому счету единственной незакрытой темой в рубрике "Про Vim" осталась тема об альтернативе Conqueror of Completion для Neovim в Lua исполнении. Причиной перерыва между данной и предыдущей статьей в рубрике стало отсутствие необходимости в этой самой альтернативе. Ну или вернее причина может быть и была: во-первых - что бы удовлетворить любопытство, во-вторых - CoC действительно кажется громоздким и достаточно сложным внутри. Вариант на Lua мне бы дался легче, если бы захотелось что-то в нем подшаманить. Наверное.

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

Расширение PVS-Studio для Visual Studio Code: поиск ошибок в Java-коде

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

Java-разработчик и предпочитаешь работать в VS Code? Для тебя есть хорошая новость! Теперь ты можешь писать ещё более надёжный код вместе с расширением PVS-Studio, которое помогает находить ошибки в Java-проектах и не только.

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

Концепция включений в markvan-разметке текстов

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

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

Многие знакомы с markdown-разметкой, которая позволяет подготавливать небольшие простые тексты для последующей конвертации в html. Теперь появился аналогичный инструмент разметки — markvan, предназначенный для написания полноразмерных литературных и технических текстов.

Приглашаю познакомиться со стандартом и поучаствовать в его разработке.

Что-ж, посмотрим
Всего голосов 8: ↑8 и ↓0 +8
Комментарии 92

Истории

Ладья на XSS: как я хакнул chess.com детским эксплойтом

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

Шахматы – это одно из многих моих хобби, за которыми я провожу свободное время, когда не ковыряюсь с какой-нибудь электроникой. При этом играю я так себе, и когда мне изрядно надоело проигрывать, я решил заняться тем, что у меня получается гораздо лучше… хакнуть систему!

В этой статье я расскажу о том, как использовал свои знания по кибербезопасности для обнаружения XSS-уязвимости (Cross-Site Scripting, межсайтовый скриптинг) на крупнейшем шахматном сайте интернета со 100 миллионами участников – Chess.com. Но для начала небольшое вступление (в котором будет затронута немного менее серьёзная, но достаточно занятная, уязвимость OSRF (On-site Request Forgery, подделка запросов на сайте).
Читать дальше →
Всего голосов 100: ↑98 и ↓2 +96
Комментарии 14

Миландр + GCC + VSCode. Пробуем мигать светодиодом на отечественном ARM32 микроконтроллере

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

Год назад я написал статью об отладке STM32 микроконтроллеров из под VSCode, с компиляцией в GCC и сборкой с помощью CMake. А в декабре мне в руки попали две тестовые единицы отечественных микроконтроллеров К1986ВЕ92FI (MDR1211FI1). Производитель имеет свою библиотеку SPL на C, а также неплохую базу примеров инициализации и применения различной периферии в Keil и IAR; однако я, average C++20+ enjoyer , решил попробовать перенести свой тулчейн на новое железо.

Читать далее
Всего голосов 32: ↑30 и ↓2 +28
Комментарии 51

Без ручного нет автоматизированного. Простой тест на Java для начинающих QA

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

Теперь мы можем сделать вывод, что автоматизация - это ручные тесты, переведённые в автоматический процесс. И если нет ручных, то нет и автотестов.

Хочешь кататься, люби и саночки возить - это как раз про проектирование тест-кейсов. Мы конечно говорим не про автоматизаторов, которые пишут автотесты по ТК от ручных тестировщиков. Мы говорим про QA, который одновременно выполняет роль manual и automation engineer в команде.

Сегодня мы будем писать на Java

⚠️ Для того чтобы Яндекс не поставил капчу на наш парсинг сайта, нам необходимо сначала зайти на любую страницу, к примеру google translate и только после мы загружаем https://music.yandex.ru/home. Задача избежать прямого посещения сайта.

Шаг 1 Откроем https://music.yandex.ru/home в инкогнито
Шаг 2 Нажимаем на крестик для закрытия страницы онбординга

Написать автотест на Java
Всего голосов 7: ↑4 и ↓3 +1
Комментарии 0

Как сделать NeoVim самым удобным текстовым редактором: туториал по настройке

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

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

Почему именно NeoVim? Всё просто: этот текстовый редактор сохраняет совместимость с Vim, но также предлагает дополнительные возможности и улучшенный интерфейс. Он позволяет более эффективно работать с кодом, а главное — настраивать редактор под свои нужды.

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

IDE, которые были у нас 30 лет назад… и которые мы потеряли

Время на прочтение 9 мин
Количество просмотров 61K
Я учился программировать в конце 1980-х — начале 1990-х годов. Тогда я не совсем понимал, что я делаю и почему инструменты, которые я использовал, были впечатляющими, учитывая ограничения имеющегося у нас железа. С годами я приобрел больше знаний, и теперь мне очень интересно взять в руки DOSBox, чтобы заново испытать те программы и сравнить их с нынешним положением дел.

image
Читать дальше →
Всего голосов 131: ↑124 и ↓7 +117
Комментарии 416

Хочу мороженое, как у того ребёнка: русские офисы

Время на прочтение 7 мин
Количество просмотров 4.1K
image

Мы разрабатываем Р7-Офис. По сути, главный ориентир — сделать, как MS, но только [].

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

То есть задачи для редактора быть:
  • Удобным для практического применения в России.
  • Совместимым с файлами MS-Офиса.
  • С похожим интерфейсом, который уже был привычен почти всем, кто работал с документами.

Важно было учесть нужную пользователям функциональность, многопользовательский режим работы и требования ГОСТ Р 7.0.97-2016 для деловой документации.

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

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

При работе с Win/*nix есть куча доработок под платформу — от интерфейсов до особенностей механизма блокировки файлов, и это тоже оказалось не мелочью.

Рассказываю подробно, как у нас дела с русским редактором.
Читать дальше →
Всего голосов 5: ↑5 и ↓0 +5
Комментарии 21

Особенности подготовки текстов для правильного воспроизведения в программах для незрячих

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

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

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

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

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

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

Набором этих правил я и хочу поделиться.

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

Как выбрать шрифт для кодинга

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

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

Читать далее
Всего голосов 34: ↑32 и ↓2 +30
Комментарии 29

Как рендерить R Markdown в PDF на кириллице

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

Так получилось, что за всё время, что я использую в работе R, мне не доводилось рендерить markdown-файлы в формат PDF. Иногда я хранил наработки просто в фалах .R, а исследования оформлял в Google Docs, накидывая туда скринов из viewer-а. Иногда это был рендер в .html, с интерактивной графикой, или проекты Shiny в облаке Posit. Да мало ли вариантов.

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

“Дело-то не хитрое, просто меняем формат вывода в markdown” — подумал я. Однако всё оказалось не так просто: и тексты и ggplot не видят кириллицу, движок xelatex не находит кастомные шрифты, LaTeX вообще всё бесит.

Каждая проблема отдельно худо-бедно гуглится или решается через chatGPT, но намного больше информации как посадить markdown-PDF на китайский, чем на кириллицу.

Рассмотрим на примере классического markdown, а в конце реализация для Quarto.

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

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

One Day Offer от УЦСБ
Дата 17 февраля
Время 10:00
Место
Онлайн

Проектирование аналога Google Docs

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

Google docs – это сервис для совместного редактирования документов. В целом подобные сервисы можно спроектировать двумя способами:

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

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

Кастомизируем VS Code для веб-разработки

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

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

В статье расскажу, какие настройки и плагины VS Code использует наша команда фронтенда в KTS. Материал может быть полезен для JavaScript- и React-разработчиков, а ещё для тех, кто уже давно пользуется VS Code, но не знает о некоторых полезных плагинах и фичах для повседневного использования. 

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

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

Читать далее
Всего голосов 46: ↑42 и ↓4 +38
Комментарии 17

Obsidian: Мой опыт с LYT/Ideaverse и его русификация

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

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

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

Почему я перестал использовать Vim

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

Говорят, однажды попробовав Vim, назад уже не вернешься.

Для разработчика Vim может быть опасен. Особенно если коллеги настаивают на его использовании или, как минимум, тонко намекают. Как если бы ты был Нео из «Матрицы», и вдруг в обычный, ничего не предвещающий день…

Опа! Сбой в матрице.

Выбор за тобой. Потом пути назад уже не будет. Примешь синюю таблетку — история закончится, ты проснёшься в своей постели и будешь верить, что GUI — это сила. Примешь красную — и останешься в Стране Чудес, а я покажу тебе, насколько глубока кроличья нора Vim. Помни — я предлагаю только правду, и ничего более.

Читать далее
Всего голосов 44: ↑24 и ↓20 +4
Комментарии 178

Когда программы были маленькими, а деревья пиксельными. Простота и минимализм TreePad

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

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

Для меня таким старым надёжным другом стала программа TreePad Lite. Она со мной уже без малого 30 лет. Мне очень близок минимализм TreePad: простота интерфейса, отсутствие необходимости установки, нетребовательность к ресурсам, открытый формат файлов, отсутствие каких-либо зависимостей от сторонних библиотек и интернета.

Читать далее
Всего голосов 56: ↑55 и ↓1 +54
Комментарии 112

Выпуск среды разработки Qt Creator 12

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

Вчера, 23 ноября 2023 года вышел релиз среды разработки Qt Creator 12.

Qt Creator (ранее известная под кодовым названием Greenhouse) — свободная IDE для разработки на С, C++, JavaScript и QML. Разработана Trolltech (Digia) для работы с фреймворком Qt. Включает в себя графический интерфейс отладчика и визуальные средства разработки интерфейса как с использованием QtWidgets, так и QML. Поддерживаемые компиляторы: GCC, Clang, MinGW, MSVC, Linux ICC, GCCE, RVCT, WINSCW.

Что нового в Qt Creator 12
Всего голосов 5: ↑4 и ↓1 +3
Комментарии 3

Переключение раскладок методом смены клавиатур

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

Хотел бы предложить свой метод переключения раскладок на клавиатуре. Существует множество программ, переключающих раскладки - Punto Switcher, Comfort Keys Pro... И для большинства пользователей эти способы, вполне возможно, будут предпочтительными.

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

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

Я подумал: почему бы вместо переключения раскладок на одной физической клавиатуре не переключаться между двумя физическими клавиатурами. Т.е. русский текст набираем на одной клавиатуре, а английский - на другой клавиатуре.

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

По завершении недели можно сказать, что эксперимент прошел успешно и возвращаться к старому методу нет никакого желания:

Первые 2 дня проходило привыкание к новому способу набора текста, рука так и тянулась к клавишам переключения раскладки. Поэтому совет: отключите сочетание клавиш переключения языка, к которому Вы привыкли. А в следующие дни работа с клавиатурой пошла быстрее, без неверно-введенных слов. Больше не приходилось заново набирать текст или менять раскладку, что вселяло некоторую уверенность при наборе текста.

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