Обновить

Разработка

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

Реально ли извлечение энергии из радиоволн?

Время на прочтение8 мин
Охват и читатели17K

Картинка: pikisuperstar, freepik

Вокруг каждого из нас плещется невидимый океан, в котором мы находимся с самого рождения — электромагнитные излучения, которые пронизывают всё вокруг. Будучи однажды осуществлёнными (1896 г., А.С. Попов), способы радиопередачи существенно эволюционировали за 128 лет, и в настоящее время мы не можем себе представить жизнь без такого канала доставки информации.

К тому же, если раньше только ограниченный круг людей непосредственно сталкивался с радиосвязью, а другие лишь знали о том, что «она в принципе где-то есть» (слушая те же радиостанции, например), то с появлением и распространением сотовой связи и мобильного интернета очень большое количество людей стало непосредственными пользователями её. Хочется сказать: «и количество излучений вокруг нас ещё более прибавилось» :-) — это будет важно в свете того, о чём пойдёт речь далее.

Таким образом, в подавляющем большинстве применений радиосвязь используется для передачи информации — непосредственной или, например, в случае тех же радаров, отражённой от объекта.

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

Посмотрим, какие возможности тут есть...

Читать далее

Регистрируете ПО? Не торопитесь…

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

Разработка приложений в качестве хобби иногда приносит свои плоды. Так, моя программа для управления оборудованием с телефона недавно нашла своего покупателя. По замечанию друга перед продажей приложения решил зарегистрировать интеллектуальную собственность. Под катом рассказываю о самой процедуре, копировании кода в Word, потерявшемся платеже и других подводных камнях.

Читать далее

HTC Desire HD: история, дизайн и возможности легендарного смартфона

Время на прочтение6 мин
Охват и читатели14K

HTC Desire HD, выпущенный в 2010 году, стал одним из первых флагманов HTC на Android, задав высокую планку для премиальных смартфонов. И я это говорю не просто так, а в качестве очевидца. Именно тогда, 15 лет назад, я стал владельцем этого чуда техники. Сразу после Nokia 6220, если не ошибаюсь.

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

Читать далее

FastCGo: как мы ускорили вызов C-кода в Go в 16,5 раза

Уровень сложностиСложный
Время на прочтение19 мин
Охват и читатели5.5K

В Deckhouse Prom++ мы переписали ядро хранения и обработки горячих данных на C++, при этом вся оркестрация и периферия остались в Prometheus на Go, что позволило сохранить полную совместимость с Prometheus. Для частых вызовов кода C++ мы использовали механизм CGo, однако первые тесты показали, что производительность CPU практически не улучшилась из-за его медлительности. В итоге мы переписали CGo, создав собственный механизм вызова.

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

Читать далее

SoundBlaster AWE32: как звуковая карта из 90-х получила обновление спустя 30 лет

Время на прочтение5 мин
Охват и читатели7.9K

Где-то в коробке с компьютерным «железом» прошлого у меня пылится SoundBlaster AWE32. Старушка 1994 года выпуска, с массивным ISA-разъемом и чипом, который в те времена казался верхом технологий. И о ней до сих пор помнят разработчики ПО, оказывается. Я недавно узнал, что для этой карты (на минуточку, спустя три десятилетия) вышел новый драйвер для Linux. Давайте разберемся, что за обновление, зачем оно нужно и почему это событие — настоящий подарок для энтузиастов.

Читать далее

Повторяю стекломорфизм в Android на AGSL шейдерах (лучше бы я этого не делал)

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели10K

Повторяю стекломорфизм в Android на AGSL шейдерах (лучше бы я этого не делал)

Изображение... искажения... размытие... о чём вы подумали? Первое, что приходит в голову – ✨ ШЕЙДЕРЫ ✨

Читать далее

Правит картинки силой слов: редактор изображений от Сбера с попиксельной точностью

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

Эпоха умного редактирования изображений наступила: ChatGPT, Gemini и Grok — крупнейшие игроки мировой AI-арены — один за другим представили инструментарий «умного фотошопа». Достаточно прикрепить картинку, попросить что-нибудь на ней изменить — и желание будет исполнено! Или не будет? 

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

Наша команда загорелась этой задачей довольно давно — и сегодня, пройдя долгий путь проб и ошибок, мы с гордостью представляем вам проект с рабочим названием MALVINA (Multimodal Artificial Language VIsion Neural Assistant). Malvina уже стал частью сервиса GigaChat и доступна всем желающим! Более того: и по метрикам, и по мнению пользователей, наша модель обходит в редактировании изображений даже GPT-4o, Gemini и Grok!

Мы вас заинтриговали?

Тогда приятного прочтения!

Новый язык от 1С: Зачем? Кому? Стоит ли лезть?

Время на прочтение5 мин
Охват и читатели48K

Привет, Хабр (и просто случайные читатели, зашедшие сюда в поисках истины или интересной статейки на пару минут)!

Так вышло, что последние полгода я провёл в тесных объятиях «Личного кабинета сотрудника» на Элементе — новом языке программирования от 1С. За это время я успел его изучить, полюбить, возненавидеть, снова полюбить и, наконец, написать эту статью, чтобы поделиться своими впечатлениями, страданиями и неожиданными открытиями.

Читать далее

Чем хорош Emacs, или Полезные советы современным приложениям от 50-летнего редактора

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

Когда я только начал использовать Emacs, то он мне показался довольно странным. У меня возникали вопросы вроде: «Почему окна в нём называются фреймами, а вкладки — окнами?» и «Что вообще значит C-x C-s

Но я всё же на него подсел, так как это внушало мне чувство индивидуальности, а уже со временем пришло понимание преимуществ и практичности архитектуры Emacs. Он прост, но невероятно удобен.

И в современных реалиях мне кажется странным, что другие приложения не похожи на него, ведь у этого 50-летнего текстового редактора можно многому поучиться.
Читать дальше →

Мирное применение фейковой базовой станции

Уровень сложностиСложный
Время на прочтение5 мин
Охват и читатели7.9K
Приветствую всех!
После выхода статьи про запуск сотовой сети 4G в домашних условиях я получил немало вопросов, сводящихся к одному: можно ли при помощи такой связки обходить региональные ограничения, заставляя подключившееся устройство считать, что оно находится в той стране, какая установлена параметрами сети? Задач, где это требуется, очень много: китайские машины, различные девайсы для умного дома, телефоны и много чего ещё.

Мысли об этом не покидали меня уже давно, и вот сейчас у меня выдался шанс проверить все имевшиеся предположения. Получится ли провернуть это на практике? Сейчас и узнаем.



Итак, в сегодняшней статье узнаем, реально ли оживить заблокированное на территории нашей страны устройство при помощи того софта, что я показывал ранее. Посмотрим, какие проблемы могут всплыть и решаемы ли они. А заодно и выясним: есть ли вообще смысл пытаться, или же идея тупиковая?
Читать дальше →

Что такое гёмбёц?

Время на прочтение4 мин
Охват и читатели17K

Неваляшка – это некая фиговина, имеющая два положения равновесия: одно устойчивого, второе неустойчивого. Ставишь его головой вверх – и как ни толкай, он возвращается в исходное положение. Ставишь на голову (ооочень-очень осторожно) – и он стоять-то стоит, но при малейшем движении готов упасть, а точнее – встать как положено, головой вверх.
Достигается этот эффект за счет шарообразных головы и, кхм, нижней части, и (главное) смещенного центра тяжести. В самом низу неваляшки находится свинцовый балласт, изо всех сил тянущий низ, что логично, вниз. Я уверена, после прочтения этих строк у вас немедленно возник вопрос: можно ли избавиться от груза и сделать однородного неваляшку?

Читать далее

Жизненный цикл потоков ОС в Golang

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

Всем привет! Меня зовут Паша, я занимаюсь коммерческой разработкой уже 10 лет, 8 из них — на Go. Мне довелось разрабатывать приложение, активно использующее как сеть, так и диск. 

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

Читать далее

Реверс-инжиниринг формата данных кабельного канала Sega

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели3.2K

Sega Channel — это сервис games-on-demand, предоставлявший абонентам кабельного телевидения ежемесячный доступ к библиотеке из примерно пятидесяти игр для Sega Genesis за помесячную оплату (обычно 10-15 долларов, в зависимости от поставщика услуг кабельного телевидения). Он работал с июня 1994 года (общий доступ по всем США включили в декабре 1994 года) по июнь 1998 года. Абонентам предоставлялся картридж-адаптер, подключавший их консоль Genesis к линии кабельного телевидения. При включении консоли картридж искал сигнал Sega Channel, а затем скачивал меню игр. Этот процесс обычно занимал примерно двадцать секунд. Затем пользователь выбирал игру и примерно минуту ждал, пока она загрузится в ОЗУ адаптера. Далее игра работала точно так же, как картридж из магазина. Отключение системы или нажатие кнопки меню на адаптере удаляло скачанную игру, но данные сохранений игры оставались в нём, пока пользователь не скачивал другую игру. Наряду с продававшимися в рознице играми в Sega Channel был раздел «Test Drives», в нём пользователи могли играть в урезанные по времени или контенту версии игр, которые позже выпускались в розничную продажу. Кроме того, было несколько игр, доступных только через Sega Channel, хотя по большей мере это были проекты, в качестве которых Sega или издатель были не уверены, а потому не хотели выпускать их на физических картриджах. Успех Sega Channel был довольно умеренным, на пике популярности на него были подписаны примерно 250 тысяч абонентов.

Читать далее

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

Продам всё, что на фото. Недорого

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

Привет, с вами снова отдел реагирования и цифровой криминалистики Angara MTDR. Наш эксперт Александр Гантимуров, руководитель направления обратной разработки Angara MTDR, исследовал вредоносные APK-файлы, которые активно используют злоумышленники в социальных сетях и мессенджерах под видом срочной распродажи личных вещей.

Читать далее

Как работают федеративные системы: рассказываем на примере YDB

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

YDB — отказоустойчивая геораспределённая СУБД класса Distributed SQL. Она появилась в недрах Яндекса более десяти лет назад и прошла длительный путь от узкоспециализированного хранилища, применявшегося в поисковом движке, до полновесной СУБД общего назначения. Открытие исходного кода YDB в 2022 году стало одной из наиболее ярких опенсорс-инициатив Яндекса.

В центре внимания разработчиков YDB долгое время была обработка транзакционной нагрузки, однако в последние годы активно развивается и аналитическое направление. Одна из востребованных аналитических функций — возможность исполнения федеративных SQL-запросов, адресованных к внешним источникам данных.

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

Читать далее

«Чтоб никто не дозвонился»: как работает аппаратура защиты таксофона

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

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

Но оставался ещё один блок, который я тогда так и не упомянул. К моему удивлению, в интернете не так много информации по тому, как он устроен и как работает. Именно о нём мы сейчас и поговорим, а заодно и узнаем, как и от чего он вообще защищает.

Вставьте карту или наберите спецслужбу

Забудьте про print(): Современное и красивое логирование в Python с помощью Loguru

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

Все мы начинали с print() для отладки, но в серьезных проектах это превращается в хаос. Стандартный logging? Мощно, но громоздко. Пора это исправить.

Loguru — это библиотека, которая делает логирование простым, как print(), и мощным, как logging, но без боли и десятков строк конфигурации. В статье покажу, как одной строкой настроить цветные логи, автоматическую ротацию файлов и ловить исключения с полным контекстом переменных. Заходите, чтобы сделать свою отладку в разы приятнее.

Читать далее

Мы делали продукт, они — презентацию. Угадайте, кто выиграл полмиллиона

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

Мы сделали продакшен-решение под сложное ТЗ, собрали всё — от FastAPI и PostgreSQL до ELK и CI/CD. А победили ребята с презентацией в Figma и пустым сайтом.

Жюри сказало, что «всё по бизнес-требованиям».

Рассказываю, как проходил «самый масштабный хакатон страны» и почему он стал фарсом.

Читать далее

Почему случается оверинжиниринг

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

Если вы достаточно давно занимаетесь разработкой ПО, то, вероятно, сталкивались с такой ситуацией: CRUD-приложение, обслуживающее небольшую группу пользователей, развёрнутое в кластере Kubernetes и вдобавок с половиной функций CNCF. В теории выглядит впечатляюще. В реальности же это машина Руба Голдберга, решающая задачи, которых у команды на самом деле нет.

В качестве противоположного примера возьмём Levels.fyi. Сегодня этот сайт помогает миллионам разработчиков сравнивать зарплаты и карьерные перспективы, но в начале его «бэкендом» были просто Google Формы, сохраняемые в Google Таблицы. Никаких микросервисов, никакого Kubernetes, никакой шины событий. Самые простые инструменты, которые можно придумать. Такая легковесная система обеспечила владельцам сервиса скорость её развития. Они проверили жизнеспособность идеи, расширили аудиторию и начали вкладываться в более сложные системы только тогда, когда стало ясно, что продукт рабочий. Иными словами, простота не стала для них препятствием, а превратилась в залог успеха. Стоит также помнить о том, что некоторые из самых сложных инфраструктур изначально были очень простыми: например, Airbnb, Facebook*, Reddit. Прежде, чем завоевать всемирную популярность, они были фрагментарными монолитами.

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

Читать далее

Асинхронность vs. многопоточность: что выживет в эпоху No GIL?

Время на прочтение14 мин
Охват и читатели19K

Хватит спорить — пора запускать и сравнивать.

Тестируем реальные сценарии, измеряем RPS, смотрим на потребление памяти и разбираемся, когда самая разумная стратегия — это просто подождать и обновить Python на free-threading версию. 

Привет, Хабр! Меня зовут Игорь Анохин, я — руководитель платформенной разработки в K2 Cloud и более 8 лет программирую на Python. 

Читать далее