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

Разработка

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

Вороной, Манхэттен, рандом

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

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

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

Осторожно, очень много картинок!

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

Шпаргалка для алгособеса — алгоритмическая сложность, структуры данных, методы сортировки и Дейкстра

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

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

Так уж повелось, что любой уважающий себя работодатель перенимает передовые^✻ методики FAANG — по этой причине практически во всех IT-собесах есть она: секция алгоритмов. Кто-то ей рад, кто-то не очень, но секция есть и уходить пока не планирует. Поэтому нужно закатать рукава и достойно встретить суровую реальность.

Читать далее
Всего голосов 216: ↑214 и ↓2+212
Комментарии77

Шпаргалка для алгособеса — алгоритмическая сложность, структуры данных, методы сортировки и Дейкстра

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

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

Так уж повелось, что любой уважающий себя работодатель перенимает передовые^✻ методики FAANG — по этой причине практически во всех IT-собесах есть она: секция алгоритмов. Кто-то ей рад, кто-то не очень, но секция есть и уходить пока не планирует. Поэтому нужно закатать рукава и достойно встретить суровую реальность.

Читать далее
Всего голосов 216: ↑214 и ↓2+212
Комментарии77

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

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

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

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

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

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

Приступим!
Читать дальше →
Всего голосов 126: ↑123 и ↓3+120
Комментарии57

Истории

Будет ли пенсия у родившихся в восьмидесятых?

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

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

Читать далее
Всего голосов 279: ↑271 и ↓8+263
Комментарии987

Неужели Banki.ru сливают ваши данные спамерам? Или как не угодить в ловушку микрозаймов

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

Кейс, казалось бы, серьезной структуры, которая скатилась в пропасть «мошенников и спамеров» со сливом ваших данных. И сейчас я это докажу.

Читать далее
Всего голосов 175: ↑173 и ↓2+171
Комментарии253

Неужели Banki.ru сливают ваши данные спамерам? Или как не угодить в ловушку микрозаймов

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

Кейс, казалось бы, серьезной структуры, которая скатилась в пропасть «мошенников и спамеров» со сливом ваших данных. И сейчас я это докажу.

Читать далее
Всего голосов 175: ↑173 и ↓2+171
Комментарии253

Ламповый дисплей для компьютера, часть 6: заключительная сборка в корпусе

Уровень сложностиСложный
Время на прочтение9 мин
Количество просмотров15K
Вы добрались до шестой, заключительной части цикла статей о ламповом дисплее для компьютера. В этой статье я опишу, как осуществлялась окончательная сборка дисплея в корпусе и что из этого вышло. Нелишне будет привести ссылки на предыдущие статьи цикла:

  • Часть 1 – обзор состояния вопроса и постановка задачи
  • Часть 2 – запуск ЭЛТ и фокусировка электронного пучка в ней
  • Часть 3 – описание блоков синхронизации и кадровой развертки
  • Часть 4 – описание блока питания, строчной развертки и получение растра
  • Часть 5 – описание коллектора, видеоусилителя, получение изображения и настройка


image
Читать дальше →
Всего голосов 162: ↑162 и ↓0+162
Комментарии64

STM32. Процесс компиляции и сборки прошивки

Уровень сложностиПростой
Время на прочтение30 мин
Количество просмотров20K
Многие из начинающих разработчиков софта для микроконтроллеров реализуют свои проекты исключительно в средствах разработки, которые предоставляются производителем. Многое скрыто от пользователя и очень хорошо скрыто, из-за чего некоторые воспринимают эти процессы сродни настоящей магии. Я, в свою очередь, как человек в пытливым умом и природной любознательностью, решил попробовать собрать проект без использования IDE и различного рода автоматизаций.

Так родилась идея для этой статьи: не используя ничего, кроме текстового редактора и командной строки, собрать проект мигания светодиодом на отладочной плате STM32F0-Discovery. Поскольку я не до конца понимал, как происходит процесс компиляции и сборки проекта, мне пришлось восполнять пробелы в знаниях. Разобравшись с этим вопросом, я подумал — а почему бы не рассказать другим об этом?

Всем кому интересно — добро пожаловать под кат! 🙂

Читать дальше →
Всего голосов 124: ↑123 и ↓1+122
Комментарии67

Взлом аппаратного ключа методом veni, vidi, vici

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

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

Задача: Сделать так, чтобы можно было пользоваться оборудованием. Дистрибутив софта, требующего ключ, есть. Работает он под Windows. Просроченный ключ есть. Оборудованию около 10 лет.

Ниже описан путь решения со всеми ошибками.

Прочитать историю
Всего голосов 188: ↑185 и ↓3+182
Комментарии26

Взлом аппаратного ключа методом veni, vidi, vici

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

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

Задача: Сделать так, чтобы можно было пользоваться оборудованием. Дистрибутив софта, требующего ключ, есть. Работает он под Windows. Просроченный ключ есть. Оборудованию около 10 лет.

Ниже описан путь решения со всеми ошибками.

Прочитать историю
Всего голосов 188: ↑185 и ↓3+182
Комментарии26

Моя большая практическая шпаргалка SQL (SQLite) с готовыми запросами

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

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

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

Все примеры изначально писались для СУБД SQLite, но почти всё из этого применимо также и к другим СУБД.

Здесь есть и примеры довольно сложных запросов с агрегирующими функциями, триггерами, длинными подзапросами, с оконными функциями. Помимо этого, часть примеров посвящена работе с SQL в Python, используя sqlite3, pandas, polars. Этот список запросов с комментариями можно использовать как наглядное пособие для изучения SQL.

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

Моя большая практическая шпаргалка SQL (SQLite) с готовыми запросами

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

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

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

Все примеры изначально писались для СУБД SQLite, но почти всё из этого применимо также и к другим СУБД.

Здесь есть и примеры довольно сложных запросов с агрегирующими функциями, триггерами, длинными подзапросами, с оконными функциями. Помимо этого, часть примеров посвящена работе с SQL в Python, используя sqlite3, pandas, polars. Этот список запросов с комментариями можно использовать как наглядное пособие для изучения SQL.

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

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

Weekend Offer в AliExpress
Дата20 – 21 апреля
Время10:00 – 20:00
Место
Онлайн
Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн

Оживляем автоинформатор из подмосковного автобуса

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров10K
Приветствую всех!
Так уж вышло, что при наличии у меня немалого количества артефактов из мира транспорта, у меня до сих пор не было той штуки, с которой у многих ассоциируется этот самый транспорт, — той самой коробочки, благодаря которой мы слышим легендарное «Осторожно, двери закрываются». Ну что же, самое время восполнить это упущение.



Итак, в сегодняшней статье поговорим об одном из первых массовых отечественных автоинформаторов. Узнаем, как работала эта штука и какие неожиданные технологические решения есть внутри. Традиционно будет много интересного.
Читать дальше →
Всего голосов 112: ↑112 и ↓0+112
Комментарии58

Тинькофф банк вернул 200 тысяч. Это был не дипфейк

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

В прошлом посте я поделился историей, как мошенник подтвердил мою личность в банке.

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

Читать далее
Всего голосов 188: ↑177 и ↓11+166
Комментарии168

На помойку? Никак нет! Пишем нативные приложения для дешевых китайских телефонов

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

Если сейчас приехать в пункт приема металлолома, то можно обнаружить просто огромные кучи различных телефонов и прочих электронных «отходов», которые стоят под открытым небом и ждут, когда придёт их черёд окончательного разложения. Однако при ближайшем рассмотрении выясняется, что многие девайсы оказываются полностью рабочими даже после недельного лежания под палящим солнцем и проливными дождями, а сдали их в чермет по причинам «не нужен, надоел, купил новый» и т. п. Я не считаю это правильным, ведь даже в простые кнопочные звонилки имеется возможность вдохнуть новую жизнь, если знать один интересный, но малоизвестный факт: для них можно писать нативные приложения на C и использовать железо телефона в своих целях. А это, на минуточку, как минимум: дисплей с подсветкой, вибромотор, динамик, клавиатура и GSM-радиомодуль с возможностью выхода в сеть. Сегодня мы с вами: узнаем, на каких аппаратных платформах работают китайские телефоны, какие существуют программные платформы и где взять для них SDK, а в практической части мы напишем 2D-игру с нуля, которая будет работать на многих китайских кнопочниках. Интересно? Тогда жду вас под катом!
Читать дальше →
Всего голосов 119: ↑117 и ↓2+115
Комментарии86

Люди не понимают ООП

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

«ООП для меня означает лишь обмен сообщениями, локальные ограничения и защиту, сокрытие состояния процесса и крайне позднее привязывание», — Алан Кэй (человек, придумавший термин «объектно-ориентированное программирование»)1

Похоже, многим не нравится объектно-ориентированное программирование. Первое, что приходит в голову, когда слышишь эту трёхбуквенную аббревиатуру — это пример с автомобилем, наследование, геттеры, сеттеры и ObjectFactoryFactorySingleton.

Мне это всегда казалось довольно странным. Мне не только нравится ООП, я ещё и считаю, что часто это лучший/наиболее очевидный способ моделирования задачи. И ниже я расскажу, почему.
Читать дальше →
Всего голосов 154: ↑147 и ↓7+140
Комментарии457

Два сапога — пара, а три — уже community: как алгоритмы на графах помогают собирать группы товаров

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

Привет, Хабр! Меня зовут Иван Антипов, я занимаюсь ML в команде матчинга Ozon. Наша команда разрабатывает алгоритмы поиска одинаковых товаров на сайте. Это позволяет покупателям находить более выгодные предложения, экономя время и деньги.

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

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

Корпоративный куколдизм

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

Зачастую мне приходится слышать в подкастах или лицезреть в комментариях примерно такой диалог: "Я вашу айтишечку на балде вертел. Я сюда ради денег пришёл, которые в России ни в одной другой области не платят. Я вру на собесах об опыте, потому что работодатели точно так же врут соискателям об условиях работы, требования к джунам сениорские, а зарплата - нет"

Читать далее
Всего голосов 407: ↑318 и ↓89+229
Комментарии1149

Ламповый дисплей для компьютера, часть 5: коллектор, видеоусилитель и изображение

Уровень сложностиСложный
Время на прочтение15 мин
Количество просмотров9.6K
Рад приветствовать всех, читающих уже пятую часть цикла статей о ламповом дисплее для компьютера, в которой можно рассмотреть долгожданный результат проделанной опытно-конструкторской работы. Прежде чем перейти к такому описанию, кратко напомню содержание предыдущих частей:

  • Часть 1 – обзор существующих концепций для построения необычных дисплейных устройств и выбор своей собственной
  • Часть 2 – запуск ЭЛТ и фокусировка электронного пучка в ней
  • Часть 3 – описание блоков синхронизации и кадровой развертки
  • Часть 4 – описание финальной сборки блока питания и блока разверток, получение растра на экране

image
Читать дальше →
Всего голосов 137: ↑137 и ↓0+137
Комментарии26