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

Разработка

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

Файловый ввод, сделанный по-человечески

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

Поводом к написанию данной статьи и к разработке соответствующей мини-библиотеки ffh стало одно из практических заданий по дисциплине ‘Языки программирования’, которую я веду. В этом задании необходимо прочитать все строки из текстового файла для последующей обработки. Так вот, у студентов, выбравших для выполнения этого задания язык C++ [язык программирования выбирается студентом для каждого задания, но чаще всего выбирают C++ или Python], почему-то иногда читалась из файла лишняя пустая строка. В прошлые годы я не придавал этому большого значения, но в последний раз решил таки разобраться в чём проблема.
Читать дальше →
Всего голосов 1: ↑1 и ↓0 +1
Комментарии 7

Новости

5 самых странных языков программирования: для чего они нужны и что на них можно написать

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

Согласно самым разным источникам, в мире существует от нескольких сотен до нескольких тысяч языков программирования. Правда, ЯП, с которыми реально имеют дело десятки и сотни тысяч человек, немного. Больше, конечно, нишевых языков, применяемых для решения узкого круга задач. Существуют ЯП для обучения разработчиков, а также проекты, созданные исключительно для развлечения. В статье — 5 наиболее странных языков из когда-либо созданных. Brainfuck, кстати, опустим, ведь его на Хабре и так регулярно вспоминают. Что же, поехали.

Читать далее
Всего голосов 17: ↑11 и ↓6 +5
Комментарии 9

Что о безопасности приложений расскажут на SafeCode

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

В декабре мы представили Хабру нашу новую онлайн-конференцию SafeCode. А теперь, когда до неё осталось две недели и программа готова, можем подробнее рассказать, о чём именно будут доклады.

Если ограничиться одной фразой, то на конференции подойдут к application security с разных сторон: от JavaScript до ассемблера, от DevSecOps до ML, от «уязвимости мобильных приложений» до «пентеста веб-приложения».

А полные описания всех докладов — под катом:

Программа SafeCode 2024
Всего голосов 3: ↑3 и ↓0 +3
Комментарии 0

Как использовать Elasticdump с Manticore

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

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

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

Истории

Как сделать игру, если ты ниче не умеешь — 1 часть

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

Разбираемся как вкатиться в Unity со знаниями C# на примере простой игры - 3D-раннер с препятствиями и сбором красных мячиков.

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

Packer: мультисборка, пост-процессоры и пользовательские плагины

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

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

Packer — это open-source инструмент для создания идентичных машинных образов для множества платформ из одного исходного файла конфигурации. Т.е с пакером можно автоматизировать создание образов для Amazon EC2, VMware, Docker и т.д, используя единый процесс сборки.

Рассмотрим его возможности мультисборки, пост-процессоров и пользовательских плагинов.

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

Генерация beacon’ов под Linux для Cobalt Strike

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

CrossC2 - фреймворк, включающий в себя генератор beacon’ов для различных систем (Linux, MacOS и т.п.), а также набор скриптов для Cobalt Strike. В этой статье мы рассмотрим данное решение.

Читать далее
Рейтинг 0
Комментарии 0

Разработка производительного распознавателя автономеров для edge-устройств

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

«Мы всего лишь хотели пофиксить баги в своем продукте, а психанули и создали аналог одной из библиотек» — CV-инженеры CodeInside.

Итак, в созданной нами системе мониторинга транспортного потока Smart Traffic System доступен функционал по распознаванию номерных знаков автомобилей.
Для работы этой функции ранее мы использовали библиотеку автоматического определения и распознавания автомобильных номеров — opensource-решение Nomeroff-net.
Однако, во время пользования этой библиотекой, столкнулись с долгим запуском и inference + библиотека занимала большое количество оперативной памяти. Так как мы решали эти проблемы в коммерческом проекте, кода здесь не будет. И вместе с тем, в статье указали репозиторий, конкретные шаги решения, чтобы при возникновении аналогичных проблем, вы смогли адаптировать его под свой проект.

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

LLM Leaderboard за февраль 2024

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

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

Сегодня мы поговорим о том, какие LLM лучше всего работаю на бизнес-задачах. AI-хайп находится на локальном пике, похоже, что весь мир только и делает, что внедряет AI-фичи в свои продукты, собирает миллионы на разработку еще одной оболочки для ChatGPT, заполняет свои ряды AI-тулами и, кажется, предоставляет работу роботам, пока сами попивают кофе в старбаксе.

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

Как работает криптография в ДЭГ

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

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

Читать далее
Всего голосов 18: ↑7 и ↓11 -4
Комментарии 66

Опыт автоматизации управления FPGA-стендами для распределенной команды: отказ от готового решения и работа над ошибками

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

В software-разработке с автоматизацией обычно все неплохо: более-менее понятно, как настроить CI и автоматизировать отдельные этапы CI-конвейера. Есть множество готовых решений и практик. Но, когда речь заходит об автоматизации тестирования на «железе», появляется множество нюансов. Например, не всегда понятно как автоматизировать процессы, которые обычно делают люди, — банальную перезагрузку устройства в другом городе. Или другая особенность — целевые аппаратные ресурсы масштабируются не так хорошо, как софт, поэтому приходится придумывать свои подходы к распределению времени доступа к стенду для СI-конвейеров и инженеров.

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

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

Почему ваши витамины и лекарства не работают на 100%? Машинное обучение нашло ответ

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

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

Почему, например, не рекомендуется одновременно принимать железо и цинк? Они же оба положительно влияют на формирование иммунитета. А ведь это распространяется и на многие лекарственные препараты!

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

К сожалению, для многих препаратов эти белки неизвестны.

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

Приятного чтения! :)

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

Как взламывают биометрию и заставляют нейросети придумывать способы атак: топ-6 докладов с PHDays о ML и AI

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

Машинное обучение — особенно генеративные нейронные сети, такие как ChatGPT, — меняет мир нечеловеческими темпами. Разработчиков на некоторых дистанционных собеседованиях просят направить веб-камеру на рабочее место и клавиатуру, чтобы понимать, самостоятельно ли соискатель выполняет задания. Amazon ограничивает авторов самиздата загрузкой на сайт трех книг в день — фанфики и другая проза создаются неестественно быстро для «кожаных мешков». Поумневшие чат-боты приводят к массовым увольнениям сотрудников поддержки, а дизайнеры опасаются уступить конкуренцию Midjourney и Playground v2.

Генеративный AI словно говорит человечеству: «Сосредоточьтесь на важном, а я займусь искусствами, этими избыточными павлиньими хвостами хомосапиенсов, и рутиной». Люди ставят задачи, а огромная AI-фабрика по созданию цифрового контента их выполняет. Мечта многих, получается, осуществилась? Но преступники тоже используют AI или находят способы обмануть умные системы. Об угрозах ML и AI, в том числе для информационной безопасности, мы будем говорить в традиционном треке на киберфестивале Positive Hack Days 2. У вас есть время подать заявку до 15 марта, чтобы поделиться своим исследованием с 23 по 26 мая на стадионе «Лужники». А сейчас расскажем о некоторых любопытных докладах прошлых лет на ML-треке PHDays.

Читать далее
Рейтинг 0
Комментарии 0

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

DI CONF SMM — большая конференция по соцсетям в России
Дата 2 марта
Время 09:30 – 18:00
Место
Краснодар Онлайн
Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн

Деплой Flutter-приложений и особенности платформ

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

Всем привет! Меня зовут Александр Омельяненко, я Flutter-разработчик в AGIMA. Сегодня расскажу про релиз приложений в сторы. И поскольку работаю с кросс-платформой, речь пойдет как про Android, так и про iOS. Уверен, каждый участник команды должен понимать, что происходит с приложением, когда оно готово. Поэтому всё объясняю подробно: какие сторы использовать, каких подводных камней ожидать, что делать, если релиз отклонили.

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

Что я понял, изучив 50 книг про IT?

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

За прошедшие 3-4 года я прочитал в общей сложности более 25 000 страниц технической литературы и стал замечать, как сильно изменились подходы к выбору книг и их изучению. В этой заметке хочу поделиться наблюдениями и выводами, которые помогут читателю сэкономить время, сохранить мотивацию к чтению и выбрать действительно полезную книгу.

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

Матрицы помогают в олимпиадных задачах

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

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

Задача 1 (ШАД). В ШАД поступили всего 10 студентов. Кураторы решили ограничить число доступных курсов и придумали набор простых правил:

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

Как создать экосистему и сколько это стоит

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

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

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

Лучший стек для питониста-джуна 2024 (2 часть)

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

Итак, что же поменялось за чуточку больше чем полгода? Если мы будем говорить об актуальности - ничего. Django до сих пор, а скорее всего так будет и всегда, остается "на плаву". Большая часть вакансий для back-end разработчика на Python имеет в себе требования по знаниям Django. Говорить вечно о том, что он удобен, постоянно поддерживаем, дает довольно обширный функционал и так далее - бессмысленно. Все основные моменты я упомянул в первой части.

Ладно, вступление в сторону! Лучше обсудить то, что изменилось с Django за это время.

Самое грандиозное из этого - выход Django 5! По сути скачок на пятую версию не принес в фреймворк особо крупных изменений, но парочку моментов хочу подчеркнуть. Первое и самое важное, на мой взгляд, это то, что разработчики решили добавить больше асинхронности без подключения таск-менеджеров. Для этого они добавили несколько декораторов и методов. Хотя это немного, на мой взгляд, противоречит самому принципу работы Django (напоминаю: Django синхронный фреймворк и для того, чтобы сделать очередь задач, нужно подключать таск-менеджеры, например, Celery), но тем не менее, это все равно крутой шаг в эволюцию. Надеюсь, что разработчики и дальше будут двигаться в этом направлении.

Далее, не могу не упомянуть очень важный момент - совместимость с Python. Django 5 будет работать только с версиями Python 3.10 и выше. Django 4.2.x - последняя версия, которая работает с Python 3.8 и 3.9.

Остальное я могу отнести в одну кучу: добавление фасетных фильтров в админке, упрощение шаблонов для отрисовки полей формы, прикольная, на мой взгляд, функция для значений по умолчанию, вычисленных базой данных, и еще пару приколюх с БД. Все остальное и более подробно вы сможете почитать в официальной документации. Я же не буду все разжевывать, так как отойду от темы статьи.

Смотреть польностью
Всего голосов 6: ↑6 и ↓0 +6
Комментарии 6

Настраиваем кросс-обновления Android-приложений между сторами

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

Привет, Хабр! Меня зовут Тимофей, я Android-разработчик в Сравни. Давайте поговорим о кросс-обновлении Android-приложений без привязки к конкретному стору – так, чтобы пользователи могли устанавливать из одного источника, а обновлять – из другого, без необходимости удалять и ставить заново.

Поводы задуматься о подобном сценарии у нас были разные: проработка рисков блокировки приложения в сторах, исследование новых возможностей добавить удобства пользователям, активация дополнительных каналов дистрибуции приложений. 

Но первые реальные практические шаги в этом направлении мы сделали в формате
“А что, так можно было?”: пошли выкладывать приложение в RuStore и попутно обнаружили возможности использовать аналогичные механизмы для настройки кросс-обновления.

Так что там дальше?
Всего голосов 5: ↑4 и ↓1 +3
Комментарии 0

3D-сканирование как инструмент обратного инжиниринга агрегатов

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

3D-Сканирование как инструмент обратного проектирования.

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

Когда может появиться необходимость применения реверс-инжиниринга? Я столкнулся с необходимостью создания динамического и статического оборудования в рамках построения цифрового двойника крупного предприятия ГПНС, используя как облака точек цехов, так и различную документацию на оборудование. Ранее необходимость возникала в связи с созданием базы твердотельных моделей отсканированной 3D сканером оснастки деталей разгонных блоков для ее дальнейшего изготовления на станках с ЧПУ.

В данных случаях, 3D модели оборудования создавались мною в различных программных комплексах и в рамках статьи я хотел бы показать один из способов создания 3D модели, используя облака точек и такие программы как Polyworks и Geomagic Design X.  

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