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

Разработка

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

Мобильная разработка за неделю #537 (29 апреля — 12 мая)

Время на прочтение4 мин
Количество просмотров955
Собрали дайджест сразу за две недели — в нем материалы про Composable Architecture и новый компилятор K2, Room для Kotlin Multiplatform и будущее магазинов приложений, самые скачиваемые и зарабатывающие приложения в России в апреле, превращение игрушечного робота-доставщика в ровер и многое другое. Подключайтесь!

Подписывайтесь на наш Telegram-канал Mobile Insights, где еще больше материалов для мобильных разработчиков. А в IT Insights — много об интересном коде и технологиях.

Читать дальше →
Всего голосов 1: ↑1.5 и ↓-0.5+2
Комментарии0

Тестирование алгоритма деления больших чисел на С++ с использованием Python C API

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

Ранее был предложен некоторый Алгоритм деления 2W-битовых чисел с использованием операций над W-битовыми числами. Для тестирования использовались целые числа языка С++, что не позволяло проверять, например, 128-битные целые числа. Однако, в язык Python встроена поддержка целых чисел неограниченной ширины (Big Integer), а также имеется API для вызова методов Python из программ на языке С/С++. Это позволяет протестировать разные алгоритмы с числами, в том числе деление, используя в качестве результата строковое представление чисел.

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

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

Типизированные массивы должны умереть

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

Хаха :). Не, я серьезно. Позвольте мне объяснить.

Хорошо. Что такое типизированный массив?

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

Читать далее
Всего голосов 5: ↑5.5 и ↓-0.5+6
Комментарии12

ChatGPT как мутная ксерокопия Интернета

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

В 2013 году сотрудники одной немецкой строительной компании заметили одну странность в работе корпоративного аппарата Xerox. Всякий раз, когда копировалась планировка этажа в стоящемся здании, копия отличалась от оригинала в одном тонком, но в очень важном аспекте. В оригинальной версии планировки в доме различались три комнаты, и у каждой из них в прямоугольнике была подписана площадь этой комнаты: 14,13, 21,11 и 17,42 квадратных метра, соответственно. Но на ксерокопии было написано, что все три комнаты имеют площадь по 14,13 квадратных метра. Компания обратилась к информатику Давиду Кризелю с просьбой, почему получается такой, казалось бы, немыслимый результат. Здесь требовалась именно консультация информатика, так как в современных аппаратах не применяется физический ксерографический процесс, впервые популяризованный в 1960-е. Вместо этого аппарат создаёт цифровую копию документа, а затем распечатывает полученный файл (изображение). При этом учтём, что для экономии дискового пространства почти все цифровые файлы изображений подвергаются сжатию — и разгадка этого таинственного случая начинает напрашиваться сама собой.

Читать далее
Всего голосов 45: ↑47.5 и ↓-2.5+50
Комментарии42

Истории

Двигатели переменного тока – точные модели

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

На семинаре «Преподавание электропривода в вузах», прошедшем в ЛЭТИ пятого октября прошлого года, был представлен доклад Алексея Сергеевича Анучина (далее для краткости А.С.) под названием «Модели, которым мы учим студентов».

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

Материал, изложенный ниже, является результатом этих раздумий.

Авторы: Ю.Н. Калачёв, Ф.И. Баум, А.Ю. Базин

Вполне допускаются и даже приветствуются возражения читателей.

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

Математические бланки // Часть 1: введение в проблему

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

Что может быть настолько мистическим, чтобы описываться прямо противоположными понятиями? Извольте: чёрный ящик aka белое пятно. На самом деле, цвет здесь вторичен, он лишь означает: мы не знаем, что внутри. Желание преодолеть неизвестность ходит по пятам за идеей чёрного ящика - люди всегда стремились открыть его, нанести карту на белое пятно. Как показывает история, за этим обычно следует движение вперёд, новые возможности и премиальные бонусы.

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

Тем не менее, предъявление внутренней структуры этих объектов (которое заняло 10 лет) обещает замечательные, прорывные результаты в самых разных областях. Теперь предстоит показать всё это широкому кругу программистов и математиков, для чего и предназначена предлагаемая вашему вниманию серия заметок. Данная первая заметка описывает проблему математических бланков и демонстрирует, на что способно её решение.

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

Kotlin JS: непокоренная вершина VK

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

После окончания нативного Android приложения от заказчика последовало предложение написать мини-приложение VK. Так как я имел опыт написания кода только для нативных приложений, то для меня это был интересный челенж. Немного погуглив пришел к тому, что добрые разработчики из Jet Brains разработали Kotlin JS - оболочку над React (а Kotlin мой основной язык). Вдохновившись статьей https://habr.com/ru/companies/vk/articles/521192/ я приступил к написанию кода.

Итак, чем хорош Kotlin для разработки такого рода приложений - использование всех фишек (экстеншены, дата классы, корутины, конструкции и пр.) языка и в то же время возможность реализации компонентов и хуков React. Поэтому, сомнений у меня не было.

Несмотря на то, что в статьях указывается как легко имплементируются в проект библиотеки, действительность оказалось другой. Gradle сыпал ошибками несовместимости библиотек между собой. При этом, при одинаковых номерах версий дружба никак не зарождалась. В итоге, поэкспериментировав с различными версиями пришлось перейти к изучению списка оберток в https://github.com/JetBrains/kotlin-wrappers/. Здесь меня ожидало решение проблемы совместимости - https://github.com/JetBrains/kotlin-wrappers/tree/master/kotlin-wrappers-bom. Добавление имплементации этой библиотеки позволяет не заморачиваться и передать это заботу этой библиотеке:

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

Одноплатник на 155-й серии

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

Эта история началась с ухода в отпуск зимой. Вы только представьте! Полярная ночь, темно хоть глаз выколи и дикий мороз. И вот сижу я такой страдалец, не зная, чем себя занять горемычного. А тут выскакивает статья, что японцы собрали однобитный компьютер на четырех микросхемах. (Naoto64). И вот то ли от безделья, то ли от тоски, или азарт меня одолел, но решил я попробовать собрать «одноплатник» с минимальным количеством микросхем. Под словом «минимальным» я подразумеваю компромисс между функционалом и лишним корпусом микросхемы. В итоге получилось при минимальной комплектации 26 микросхем. Это конечно гораздо больше, чем у Naoto64, но за то это уже 4-х битный «одноплатник».

Читать далее
Всего голосов 191: ↑203.5 и ↓-12.5+216
Комментарии89

Мега-Учебник Flask Глава 8: Подписчики (издание 2024)

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

Это восьмая часть серии мега-учебника Flask, в которой я собираюсь рассказать вам, как реализовать функцию "подписчики", аналогичную функции Twitter и других социальных сетей.

Начать изучение
Всего голосов 6: ↑6 и ↓0+6
Комментарии0

Запускаем Intel 87C51 — первый крупносерийный микроконтроллер (1980)

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

  Мы принимаем как должное удобства современных микроконтроллеров - все ключевые компоненты интегрированы в один корпус: флэш-память/EEPROM, SRAM, само процессорное ядро, PLL, ADC/DAC, PWM, последовательные порты и многое другое.

  Но так было не всегда. Первым монолитным микроконтроллером был Intel 8048 (MCS-48) выпущенный в 1976 по n-МОП технологии. Не планировалось что у него будет длинный жизненный цикл и уже через 4 года в 1980 на смену ему пришел Intel 8051 (MCS-51), завоевавший мир. Не планировалось что у него будет длинный жизненный цикл и уже через 4 года в 1980 на смену ему пришел Intel 8051 (MCS-51), завоевавший мир. Он имел на борту 4КиБ однократно-программируемой памяти, 128 байт SRAM, GPIO, последовательные порт и, собственно, 8-битное процессорное ядро. Intel 87C51FC был вариантом на базе УФ-стираемой EPROM памяти (объемом 32КиБ), C-версия - на КМОП процессе, объем памяти увеличен до 256 байт.

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

Читать далее
Всего голосов 53: ↑58.5 и ↓-5.5+64
Комментарии32

Парсинг математических выражений AngouriMath, DynamicExpresso и MathExpressionEval

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

Пожалуй большинство программистов так или иначе сталкивались с с++. Как и я большинство таких людей начинали познавать с++ через его великого основателя Бьярне Страуструпа. Одна из его энциклопедий по с++ начиналась с калькулятора. С подобной задачей написания калькулятора для расчета выражений нам довелось столкнуться в рамках одного из спринтов только уже на c#. (AngouriMath, DynamicExpresso, MathExpressionEval)

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

Еще один электронный конструктор

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


Предлагаю вашему вниманию еще один вариант электронного конструктора, несложного для самостоятельного изготовления. Хотелось сделать нечто похожее на «Знаток» по степени наглядности, но с расширенными возможностями. В частности, в «Знатоке» очень не хватало возможности подключать микросхемы.

Попытка прямого копирования «Знатока» ни к чему дельному не привела, поскольку так и не удалось самостоятельно изготовить «пуговичные» разъемы. Вместо этого было решено использовать соединения на основе обычных винтов.
Читать дальше →
Всего голосов 37: ↑41 и ↓-4+45
Комментарии50

Основы программирования на примере исходного кода MobX

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

Изучите ключевые концепции программирования, лежащие в основе популярной JavaScript-библиотеки MobX. Понимание этих концепций поможет вам применить лучшие практики программирования в работе.

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

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

One day offer от ВСК
Дата16 – 17 мая
Время09:00 – 18:00
Место
Онлайн
Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн
Антиконференция X5 Future Night
Дата30 мая
Время11:00 – 23:00
Место
Онлайн
Конференция «IT IS CONF 2024»
Дата20 июня
Время09:00 – 19:00
Место
Екатеринбург
Summer Merge
Дата28 – 30 июня
Время11:00
Место
Ульяновская область

Llama 3-70b в своем Телеграм боте — бесплатно, безлимитно и всего 20 строк кода

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

Да, всего 20 строк кода и бот:

1) по качеству ответов будет соизмерим с ChatGPT-4;
2) будет отвечать очень быстро т.к. подключим мы его через Groq который в среднем в 10 раз быстрее других аналогичных сервисов;
3) будет поддерживать диалог и запоминать последние сообщения.

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

Сложности перевода: баг, который говорил по-русски и ломал моё приложение

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

Шпион всматривается в экраны

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

Со всеми этими задачами я справился за день и, проведя несколько тестов, выпустил новую версию…
Читать дальше →
Всего голосов 49: ↑54 и ↓-5+59
Комментарии14

Spore – игровая песочница с безграничным потенциалом

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

Игровая индустрия в погоне за прибылью основной упор делает на проекты, созданные в хорошо продающемся жанре, очень часто оставляя другие, особенно экспериментальные, за бортом. Но надо признать, что в этом правиле бывали и исключения, когда даже жадные капиталисты вроде Electronic Arts спонсировали создание такого самородка, как Spore. Правда при этом ЕА сама же его и угробила, но об этом чуть позже. А пока мне хотелось бы начать свой рассказ про это уникальное творение, созданное по инициативе одного из столпов игровой индустрии – Уилла Райта – и его студии Maxis.

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

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

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

Читать далее
Всего голосов 27: ↑27.5 и ↓-0.5+28
Комментарии21

Связь решения СЛАУ и минимума квадратичного функционла. Часть 1

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

В цикле статей под общим названием «Связь решения СЛАУ и минимума квадратичного функционала» постараюсь осветить различные методы решения СЛАУ, которые редко можно встретить в учебниках по линейной алгебре. Основная цель – написать понятный, но в то же время наполненный полезной информацией материал. К каждой последующей статье будет прилагаться соответствующая реализация на языке программирования C++.

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

KC868-A32M: контроллер без цифровых входов (зато со всем остальным, плюс 32 мосфета)

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


Похоже Kincony перешла к созданию откровенно экзотических моделей (видимо все тривиальные она уже выпустила) для пресыщенных её продукцией фанатов автоматизаторов.

KC868-A32M — это своеобразный гибрид в котором есть всё, что только можно, но нет… цифровых входов. Вопрос: «что это за контроллер без цифровых входов?» незримо повисает в воздухе и я сходу даже не припомню аналогов столь смелого технологического решения.

Ну ладно, вначале мы ужаснулись, теперь давайте попробуем разобраться с тем, что представляет собой KC868-A32M.
Читать дальше →
Всего голосов 13: ↑14.5 и ↓-1.5+16
Комментарии19

У Китая новые проблемы: Intel перестанет поставлять чипы Huawei. К чему может привести это решение?

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

Вот уже несколько лет Китай не может ввозить ряд категорий оборудования для работы с чипами и сами микросхемы. Речь, конечно, идёт о торговом конфликте США и КНР. С течением времени Китаю урезают возможности поставок важных для страны чипов и технологий. Сейчас появилась ещё одна проблема — Huawei теперь не сможет работать с Intel, которая поставляла огромное количество чипов. Подробности — под катом.

Читать далее
Всего голосов 21: ↑21.5 и ↓-0.5+22
Комментарии27

Настройка связки VScode, OpenOCD, WCH-LinkE, Cortex-M

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

Wch-link является программатором для ARM, RISC-V микроконтроллеров. По возможностям это аналог St-link, JLink и прочих. По сравнению с st-link он поддерживает контроллеры не только фирмы STM. А по сравнению с JLink стоит намного дешевле и не имеет проблем с лицензиями, которые могут встречаться у дешевых клонов JLink. Также плюсом идет поддержка набирающих популярность контроллеров от китайской компании WCH.

Есть несколько вариантов этого отладчика, я буду говорить о версии Wch-linkE rev 1.3.

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