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

Программирование *

Искусство создания компьютерных программ

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

Поиск ошибок в логике работы чат-бота с помощью TF-IDF и DBSCAN

Время на прочтение 6 мин
Количество просмотров 3
Машинное обучение *Программирование *Natural Language Processing *Python *
Кейс

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

Меня зовут Котов Илья, я Data Scientist и участник профессионального сообщества NTA.
В предложенной работе, на примере задачи поиска логических ошибок робота, я продемонстрирую, как методы тематического моделирования помогут исследователям при работе с большим объемом текстовых данных.

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

Новости

Процедурная генерация 3D-мешей для интро на 64 КБ

Время на прочтение 7 мин
Количество просмотров 692
Программирование *C++ *Assembler *Работа с 3D-графикой *Демосцена
Перевод

В предыдущей статье [перевод на Хабре] мы рассказали, как генерируются текстуры в демо H – Immersion. На этот раз мы изучим ещё один важный инструмент для создания демо нужного размера — процедурную геометрию.

В частности, поскольку в нашем рендеринге используются традиционные полигоны, мы написали процедурный генератор мешей. Мы покажем, как благодаря тщательно подобранным методикам можно создать разнообразие форм или убедить в этом зрителя, как это сделали мы.
Читать дальше →
Всего голосов 11: ↑11 и ↓0 +11
Комментарии 0

Пятничные клеточные автоматы: циклические конфигурации; камень-ножницы-бумага

Уровень сложности Простой
Время на прочтение 6 мин
Количество просмотров 540
Блог компании Timeweb Cloud Программирование *Алгоритмы *Читальный зал Научно-популярное
Обзор


Осторожно, трафик!

👾, Хабр!

На прошлой неделе мы снова расширили классическую «life-like» модель, добавив к ней параметр радиуса поиска соседей. Сегодня немного отойдём от этого вида и заглянем в область прочих конфигураций. Начнём с циклических КА.
Читать дальше →
Всего голосов 13: ↑12 и ↓1 +11
Комментарии 1

Инструменты анализа эффективности работы приложения. PerfView

Время на прочтение 15 мин
Количество просмотров 707
Блог компании Контур Высокая производительность *Программирование *.NET *C# *

Иногда приходится разбираться, почему .NET приложение работает "плохо". Не так, как мы ожидали. Тупит, медленно работает, зависает, запросы «не исполняются», утекает память или потребляется слишком много CPU.

Есть множество способов, как разбираться в таких ситуациях. Сегодня мы немного обсудим, что это за способы. Когда и какой способ нужно использовать. И более детально рассмотрим один из инструментов: PerfView.

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

Истории

Чем ChatGPT похож на человека и почему к этому надо относиться серьезно

Время на прочтение 7 мин
Количество просмотров 1.7K
Программирование *Data Mining *Искусственный интеллект Natural Language Processing *Data Engineering *
Мнение

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

Я соглашусь с вами в том, что ChatGPT — это всего лишь виртуальный собеседник. Это чисто программный продукт, и поэтому пообщаться с ним можно только в интернете. Не идет никакой речи о том, чтобы он управлял роботом, наподобие тех, которые разрабатывает Boston Dynamics. В реальном мире такие системы еще долго не будут составлять нам конкуренции. На роль дворника способного убирать улицу эта разработка точно не претендует. А вот в виртуальной сфере все не так однозначно. Уже сейчас, на текущей стадии развития ChatGPT способен создавать несложные части программного кода, но на этом его возможности не ограничиваются. Этот бот может придумывать интересные тексты и эссе. Так что со временем он вполне cможет вписаться в нишу квалифицированного интеллектуального труда, в котором на данный момент находится достаточное количество высокооплачиваемых людей. Поэтому я надеюсь что вы начинаете понимать каким людям в будущем этот бот будет составлять настоящую конкуренцию.

Читать далее
Всего голосов 16: ↑3 и ↓13 -10
Комментарии 23

Извлекаем прошивку GameBoy по фотографии чипа

Время на прочтение 9 мин
Количество просмотров 3.1K
Программирование *Реверс-инжиниринг *Производство и разработка электроники *Компьютерное железо
Перевод

Привет всем!

Вам предлагается маленький быстрый туториал по восстановлению прошивки GameBoy. Начнём с фотографий, изображающих прошивку металлическими соединениями (mask ROM) от Nintendo GameBoy, и на выходе получим файл ROM, который можно будет дизассемблировать или эмулировать.

Гаджет GameBoy для этого хорошо подходит, поскольку в нём используется так  называемая «постоянная память, программируемая перемычками» (Via ROM). Это означает, что отдельные биты кодируются металлическими перемычками между слоями, и эти биты можно считывать с поверхности чипа. Кроме того, сама прошивка достаточно невелика, и поэтому я смог включить её в репозиторий на Github, тем самым сэкономив вам недели времени, которые вы могли бы потратить на исправление мелких побитовых ошибок.

Привет из Ноксвилла,

— Трэвис Гудспид

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

Как разработать драйвер Linux с нуля

Уровень сложности Сложный
Время на прочтение 11 мин
Количество просмотров 3.9K
Блог компании Timeweb Cloud Настройка Linux *Программирование *Разработка под Linux *
Туториал
Перевод
image

Недавно я занимался изучением IoT и, так как мне не хватало устройств, при попытках симулировать работу прошивки я часто сталкивался с неимением нужного /dev/xxx. Так что я стал задумываться, а могу ли написать драйвер самостоятельно, чтобы заставить прошивку работать. Независимо от того, насколько сложно это будет, и удастся ли воплотить такое намерение, в любом случае вы не пожалеете, если научитесь разрабатывать драйвер Linux с нуля.
Читать дальше →
Всего голосов 32: ↑27 и ↓5 +22
Комментарии 5

Алгебра int о которой не говорят

Уровень сложности Средний
Время на прочтение 9 мин
Количество просмотров 5.5K
Программирование *IT-стандарты *Математика *
FAQ

Да, тайтл кликбейтный, но тема алгебраических свойств integer'а и float'а, действительно, не часто освещается в литературе и интернетах, однако эти знания углубляют понимание реализации компьютерной арифметики и применимы на практике.

Толчком Мотивацией к написанию статьи послужил кейс, продемонстрировавший свойство целого типа, которое легко упустить из виду, но на практике приводящее к неожиданному поведению. Это ни разу не новое открытие в computer science, и под капотом все довольно просто, но сохраним интригу. Подойдем к этому свойству через реальную задачу, затем посмотрим на целочисленную арифметику с точки зрения теории групп и разложим все по полочкам. Если вы используете язык программирования с ограниченными целыми числами, то статья может оказаться полезной.

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

Клиент Ozon Seller API на Golang

Уровень сложности Простой
Время на прочтение 2 мин
Количество просмотров 673
Программирование *API *Go *
Из песочницы

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

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

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

Решаем задачу по взаимодействию микросервисов на Python тремя способами

Уровень сложности Простой
Время на прочтение 6 мин
Количество просмотров 2.5K
Блог компании Selectel Python *Программирование *Микросервисы *
Кейс


Когда речь заходит про взаимодействие микросервисов, все сразу вспоминают о сложных архитектурных паттернах, вроде Event Bus и CQRS. В этой статье я расскажу, как выполнить простенькую задачку для двух микросервисов без навороченной архитектуры. В моем случае это создание сервиса, который агрегирует события компании в единую ленту событий.
Читать дальше →
Всего голосов 37: ↑36 и ↓1 +35
Комментарии 20

SMILE.Cloud — машинное обучение без навыков программирования

Время на прочтение 6 мин
Количество просмотров 768
Блог компании ИТМО Open source *Python *Программирование *Машинное обучение *

В ИТМО создали облачный сервис, который помогает  специалистам получить доступ к возможностям машинного обучения практически без навыков программирования на Python.

Для целого ряда типовых задач сервис позволяет визуально набросать пайплайн решения, импортировать в него данные, подобрать соответствующую модель машинного обучения и проверить ее качество. Эксперименты показывают, что для среднего специалиста по данным на типовых задачах инструмент ускоряет работу в 3-5 раз, позволяя в итоге выгрузить код модели на Python, чтобы вставить в сторонний проект.

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

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

Разработка небольшого солнечного трекера

Уровень сложности Средний
Время на прочтение 6 мин
Количество просмотров 2.9K
Блог компании RUVDS.com Программирование *Программирование микроконтроллеров *DIY или Сделай сам

Всем привет. Решил немного отдохнуть от гексапода и пощупать проекты с солнечными панелями. Первое, что пришло в голову — установка для автоматического позиционирования солнечных панелей (солнечный трекер). Его главная задача — выставить солнечные панели под максимально эффективным углом для получения наибольшего КПД. В этой статье мы посмотрим, как на коленке можно собрать датчик положения источника света и на его основе создать систему позиционирования. Этот проект никогда не окупится, но и не для этого он делается — мы просто развлекаемся!
Читать дальше →
Всего голосов 40: ↑40 и ↓0 +40
Комментарии 29

Создаем свой собственный язык программирования с использованием LLVM. Часть 4: Поддержка составных типов

Время на прочтение 54 мин
Количество просмотров 2K
Open source *Программирование *Компиляторы *

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

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

Парсинг погоды для Home Assistant с помощью Node-RED

Уровень сложности Простой
Время на прочтение 9 мин
Количество просмотров 1.4K
Программирование *Умный дом
Туториал

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

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

Сравниваем структуры хоть и глубоко, но быстро

Уровень сложности Простой
Время на прочтение 5 мин
Количество просмотров 2.4K
Высокая производительность *Разработка веб-сайтов *JavaScript *Программирование *TypeScript *
Кейс

Здравствуйте, меня зовут Дмитрий Карловский и я.. автор множества микроскопических и самых шустрых в своём классе библиотек. Одна из них - $mol_compare_deep, умеющая сравнивать произвольные структуры, даже содержащие циклические ссылки. И сейчас я вам расскажу, как ей это удаётся.

Погрузиться поглубже
Всего голосов 10: ↑7 и ↓3 +4
Комментарии 19

Как устроено индексирование баз данных

Уровень сложности Простой
Время на прочтение 12 мин
Количество просмотров 9.2K
Блог компании RUVDS.com Программирование *Алгоритмы *Администрирование баз данных *
Перевод

Индексирование баз данных — это техника, повышающая скорость и эффективность запросов к базе данных. Она создаёт отдельную структуру данных, сопоставляющую значения в одном или нескольких столбцах таблицы с соответствующими местоположениями на физическом накопителе, что позволяет базе данных быстро находить строки по конкретному запросу без необходимости сканирования всей таблицы. Применяются разные типы индексов, однако они занимают пространство и должны обновляться при изменении данных. Важно тщательно продумывать стратегию индексирования базы данных и регулярно её оптимизировать.
Читать дальше →
Всего голосов 53: ↑51 и ↓2 +49
Комментарии 4

Байки погромиста. Если кто-то скажет, что программирование — это скучно

Уровень сложности Простой
Время на прочтение 12 мин
Количество просмотров 29K
Блог компании Timeweb Cloud Разработка веб-сайтов *Python *Программирование *Отладка *
Мнение

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

Но если б я писал, какой я красавчик, то никому не было бы интересно. Поэтому сегодня — очередная партия программистских историй от меня любимого, с косяками, багами и болью. Иногда это происходило по запарке, или когда я торопился, или после нудной работы, когда мозг уже плавился, а иногда просто я тупил, потому что я человек. В общем, такие вот типичные будни кодера. Наслаждайтесь!

Ну что он там опять натворил?
Всего голосов 138: ↑133 и ↓5 +128
Комментарии 34

Как не потерять голову (и память) при поиске утечек в iOS

Уровень сложности Средний
Время на прочтение 6 мин
Количество просмотров 627
Блог компании SimbirSoft Программирование *Разработка под iOS *Xcode *Swift *
Туториал

Всем привет! Меня зовут Фируза, я занимаюсь iOS-разработкой в компании SimbirSoft. Хочу поделиться результатами исследования утечек памяти, с которыми я столкнулась на одном из проектов.

Все началось с того, что я заметила подтормаживания UI и обратила внимание на рост занимаемой памяти в процессе использования приложения. В пределах нескольких сценариев расход памяти незначительно колебался – объекты создавались и освобождались. Другие сценарии при непродолжительном использовании приводили к значительному росту памяти, используемой приложением. При активном и продолжительном использовании могут «убежать» сотни мегабайт.

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

Статья будет интересна для iOS-разработчиков любого уровня. Изучив материал, вы сможете увеличить производительность вашего приложения, а также разобраться в том, как работают инструменты Xcode.

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

Зачем учить R в 2023 году?

Уровень сложности Простой
Время на прочтение 4 мин
Количество просмотров 3.6K
Блог компании OTUS Программирование *R *
Интервью

Всем привет, я Дмитрий Володин, Analytics Engineer из TrafficStars. Сегодня я хочу немного порефлексировать на тему спроса на R и целесообразности его изучения.

Текст будет выражать личный опыт и мнение, я не буду проводить аналитическую работу по сравнению средних зарплат и количества вакансий на разных языках. Скорее поделюсь своими мыслями. И постараюсь оставаться не предвзятым по максимуму.

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

Что нового в Jmix 1.5

Уровень сложности Средний
Время на прочтение 8 мин
Количество просмотров 804
Блог компании Haulmont Open source *Программирование *Java *
Обзор

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

Но сначала – небольшое вступление, кто мы такие и о какой платформе идет речь. Мы в Haulmont специализируемся на разработке и внедрении корпоративных информационных систем и заказных решений, а также собственных технологий и инструментов.

Одна из наших разработок, Jmix – это технологическая open-source платформа для быстрой разработки бизнес-приложений на Java. О ней и пойдет речь.  

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

Вклад авторов