Найти в Дзене
Как я за неделю написал конвертер PDF в DOCX на C#, а потом понял, что проще было перепечатать руками
Привет, Хабр… ой, то есть Дзен! Сегодня хочу поделиться эпичной историей о том, как я решил написать свой конвертер PDF в Word на C#. Казалось бы: ну что там, закинул библиотеку, пролистал страницы – и готово. Спойлер: ничего готово не было, зато было много слёз, костылей и магии на ровном месте. Однажды мне прислали договор в PDF. А надо было его отредактировать. Сервисы онлайн — «загрузи и получи DOCX за 2 минуты» — выдали файл, в котором вместо таблиц была каша из символов, а шрифты напоминали послание из другого измерения...
6 дней назад
Как я полюбил ад: C# регулярные выражения для чайников и мазохистов
Вы думаете, программист — это человек, который спокойно пьет кофе и пишет код богов? Нет. Настоящий программист — это археолог, который раскапывает чужой код в 3 часа ночи и находит там регулярное выражение длиной в экран. Добро пожаловать в мир System.Text.RegularExpressions на C#. Место, где дружба заканчивается, а строки превращаются в пыль. Вначале ты думаешь: «Ну, проверить email? Легко! Пишем @"^[^@]+@[^@]+\.[^@]+$"». И оно работает! Ты гений. Ты пьёшь пиво и предвкушаешь, как сейчас всё автоматизируешь...
1 неделю назад
Напишем игру Blackjack на C#: пошаговое руководство для начинающих
Хотите освоить C# и создать свою собственную карточную игру? Сегодня мы реализуем классический Blackjack (блэкджек, или «очко») в консоли. Проект поможет разобраться с объектно-ориентированным подходом, коллекциями, случайными числами и логикой игры. Давайте начнём! Игрок соревнуется с дилером. Цель — набрать сумму очков, близкую к 21, но не больше. Карты от 2 до 10 дают соответствующее число очков, валет, дама, король — 10 очков, туз — 1 или 11 (выбирается автоматически в пользу игрока без перебора)...
2 недели назад
Python + KivyMD: Хватит делать уродские окна! Делаем интерфейс, за который не стыдно
Признавайтесь честно. Когда вы показываете другу своё приложение на Python с интерфейсом на Tkinter, он делает такое лицо, будто вы показали ему фотографию своего первого сайта на Geocities из 1998 года? Серые прямоугольники, кнопки из прошлого века, а шрифты напоминают матричный принтер? Успокойтесь, всё в порядке. Вы просто не знали про KivyMD. Это библиотека, которая превращает вашего «питона» в нечто, похожее на современный мобильный или десктопный интерфейс в стиле Google Material Design. Тот самый, где кнопки прыгают, поля ввода светятся, а анимации заставляют пальцы чесаться...
2 недели назад
Создадим игру Крестики-нолики на чистом HTML+JS: пошаговый гайд для новичков
Привет! Сегодня мы напишем классическую игру «Крестики-нолики» с нуля, используя только HTML, CSS и JavaScript. Никаких фреймворков — чистый код, который работает сразу в браузере. Это отличный проект для тренировки логики, массивов и работы с DOM. В конце у нас получится минималистичная, но симпатичная игра для двух игроков (за одним устройством). Создайте файл index.html. Нам нужна сетка 3×3, заголовок и место для отображения результата. <!DOCTYPE html> <html lang="ru"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1...
3 недели назад
Моя первая программа на Android Studio: как я чуть не проклял Гугл, кота и создателя Gradle
Ожидание: пишем «Hello World» за 5 минут. Реальность: 3 часа ада, седой волос и глубокая ненависть к эмулятору. Знаете, есть вещи, которые в ютуб-туториалах выглядят красиво и легко. Например, приготовить рататуй, сесть на шпагат или создать своё первое приложение для Android. «Всего-то», — говорит жизнерадостный индус с акцентом, — «скачай Android Studio, создай проект, нажми Run, и вуаля!» Вуаля, блин. Шаг 1. Установка — уже подвиг Качаю Studio. 1.2 гигабайта. Интернет не самый быстрый, но я полон энтузиазма...
3 недели назад
Как нарисовать смайлик и солнышко на JavaScript, не имея художественного таланта (и зачем это вообще нужно)
Доброго воскресного дня, дорогие друзья, падаваны и магистры, маленькие дети, а также дети младшего, среднего, старшего, очень старшего и пожилого возраста! Над нами солнце светит, не жизнь, а благодать! И хочется то солнце скорей нарисовать! Вы когда-нибудь хотели стать художником, но в школе на рисовании ставили «двойку»? Я тоже. Но, как говорят, программисты — это художники, только вместо кисти у них клавиатура, а вместо холста — браузер. И сегодня мы с вами создадим два шедевра: весёлый смайлик и лучистое солнышко...
3 недели назад
JavaScript и 3D объекты: Как я чуть не сжег процессор, создавая идеальный куб
Привет, дорогие читатели! Если вы думаете, что JavaScript — это только для кнопок «лайк» и бесконечных «onclick» на маркетплейсах, то сегодня я вас разочарую (или обрадую). Оказывается, используя JS, можно создать такой 3D-мир, что ваша видеокарта начнет шептать молитвы, а начальник подумает, что вы осваиваете Unreal Engine 5, пока все ждут форму обратной связи. Спойлер: все гораздо проще и смешнее, чем кажется. Идея пришла внезапно. Сидел я, верстал очередной лендинг для кошачьего фитнеса, и вдруг подумал: «А почему бы коту не покрутиться в 3D?»...
4 недели назад
Как я чуть не поседел, создавая конвертер PDF в DOC на C# (и вы сможете!)
Знаете, что объединяет разработчиков и алхимиков? И те, и другие пытаются превратить один материал в другой, рискуя взорвать лабораторию. Конвертация PDF в DOC — это та самая задача, где вместо золота часто получается что-то, напоминающее философский камень с ошибками форматирования. Но мы-то с вами не ищем лёгких путей! 😈 Сегодня я расскажу, как на C# можно скрестить ужа с ежом и получить работающий конвертер, который спасёт ваши нервы и, возможно, даже сделает пару рабочих задач. Будет код, немного магии и пара забавных граблей, на которые я сам наступил...
1 месяц назад
Рейтинг самых популярных баз данных для программирования на C# в 2025 году
Привет, коллеги! 👋 Если вы пишете на C#, то рано или поздно встаёт вопрос: какую базу данных выбрать для проекта? В 2025-2026 годы выбор стал ещё шире: облачные решения, open‑source гиганты и проверенные временем СУБД – все они активно используются в .NET‑сообществе. Я подготовил для вас субъективный, но основанный на реальных данных рейтинг самых популярных баз данных у C#‑разработчиков. Поехали! Я опирался на несколько источников: Важно: рейтинг отражает не «лучшую» базу данных, а ту, с которой чаще всего работали C#‑программисты в 2025 году...
1 месяц назад
Как я написал свой браузер на C# и почему это было ошибкой (или нет)
Доброго времени суток, друзья! Все мы знаем: хороший программист отличается от плохого тем, что плохой программист пишет свой велосипед, а хороший — использует готовый. Сегодня я расскажу, как я перешагнул эту грань, решив, что миру срочно нужен ещё один браузер. Мой инструмент — C#, моя цель — величие, а результат вы сейчас увидите. Спойлер: Chrome я не победил, но пару раз поржал от души. Знаете, иногда утром просыпаешься, наливаешь кофе, смотришь на иконку Chrome и думаешь: «А чем я хуже?» В...
1 месяц назад
Условный оператор в C#: Как я разругался с компьютером из-за бутерброда
Привет, мой друг! Знаешь, в чем разница между человеком и компьютером? Человек может съесть бутерброд и сказать: "Ну, нормально, сойдёт". Компьютер же сначала спросит: "Колбаса есть? Сыра? Хлеб чёрный или белый? Масло есть? А вдруг плесень?". И если ты не ответишь на все вопросы — компьютер обидится и выдаст ошибку. В программировании за эту "придирчивость" отвечает условный оператор if...else. Сегодня мы разберем его на C# так, чтобы ты запомнил навсегда. Даже если ты сейчас пьян (но лучше код писать трезвым)...
1 месяц назад