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

Технотекст

Sovietwave и Sovietpunk: как романтика несбывшегося переплавила ностальгию по СССР в новый жанр? Часть 1

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

Выход «Atomic Heart» не просто стал громким событием в истории российского геймдева — он наиболее отчётливо отразил любопытную культурную тенденцию последней дюжины лет. С начала 2010-х футуристические образы и сюжеты в подчёркнуто советском стиле стали всё чаще встречаться в Рунете в самых разных формах. Особенно ярко это стало проявляться ближе к концу десятилетия с массовым распространением музыки в стиле ретровейва — российским ответвлением которого стал стилизованный под мелодии и ритмы советской эстрады Sovietwave. Ну а сейчас советский ретрофутуризм уже можно назвать мейнстримом, даже не особенно прибегая к совам и глобусам. Он выражает ностальгию по положительным чертам и характерным деталям советской эпохи, но с начала 90-х годов эта ностальгия успела сильно измениться. Что же с ней случилось?
Читать дальше →

Кот в мешке: мастерство обработки ошибок внешних ключей SQLite

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

Привет, меня зовут Тимур, я Android-разработчик в KTS.

Сталкивались с загадочными ошибками Foreign Key в SQLite для Android?

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

Читать далее

Электронный конструктор, не бьющий током

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

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

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

Как моя 9-месячная дочь заработала больше 1000 долларов в программе bug bounty

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

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

Читать далее

Бекенд на AWS Lambda за 60 минут

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

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

Привет, я, Петер Ибрагимов, и в Whoosh я занимаюсь бекенд разработкой на Python. В этой статье расскажу, как мы делаем наши микросервисы на лямбдах. 

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

Читать далее

Векторизация изображений. Как создать алгоритм поиска похожих изображений на Python

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

Многочисленные исследования ученых доказывают, что около 90% информации человек воспринимает через зрение. Изображения являются одним из самых богатых источников информации, которую можно использовать для разнообразных задач, включая классификацию, детекцию объектов, ранжирование изображений, поиск по изображениям и генерацию текстовых описаний. 

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

В мире есть много вещей, которые интуитивно понятны и очевидны для нас. Например, если перед нами два похожих цветка, мы можем определить их принадлежность одному виду, даже не зная названий этих растений. Этот навык позволяет нам распознавать объекты и определять их в группы. Разумеется, подобные алгоритмы уже давно существуют в современных поисковиках Google, Яндекс и прочих. Но что, если вы проектируете обособленную систему с собственной базой изображений одной или нескольких конкретных тематик и вам необходим функционал поиска похожих изображений?

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

Читать далее

«Сделано в СССР». Неожиданное продолжение

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

Именно так начиналась моя статья посвященная музею «Сделано в СССР», который я открыл для себя в городе Чебоксары. Надо сказать, что в советский период г. Чебоксары был одним из ведущих центров электротехнической промышленности, который берет своё начало в грозном 1941 году. Именно в 1941 году в город Чебоксары с началом Великой Отечественной войны были эвакуированы цеха Харьковского электромеханического завода (ХЭМЗ) и Ленинградского завода «Электрик», которые и стали основой Чебоксарского электроаппаратного завода (ЧЭАЗ). В период своего расцвета ЧЭАЗ имел две производственных площадки в городе, фактически два огромных завода. К сожалению, сегодня осталась только одна площадка, вторая. Первая площадка, с которой и начинался ЧЭАЗ, сегодня переоборудована в офисное здание. Позже появился Чебоксарский завод электроизмерительных механизмов (ЧЗЭИМ), Чебоксарский электромеханический завод, завод «Чувашкабель».

Читать далее

Как сверстать письмо, чтобы оно дошло до получателя таким, как задумано

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

Привет! Меня зовут Егор Стеблин, я фронтенд-разработчик отдела спецпроектов в KTS.

В статье расскажу и покажу, как сверстать письмо, чтобы оно наверняка правильно отображалось во всех почтовых клиентах — особенно в Outlook, который до сих пор возглавляет подборки по популярности в РФ.

В конце — пример целого письма в HTML.

Читать далее

Как работать с нейросетью Midjourney, чтобы получать желаемый результат

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

Привет, Хабр! Меня зовут Алина, я дизайнер в Friflex. Отвечаю за красоту мобильных и веб-интерфейсов и делаю иллюстрации для медиаканалов компании. 

Midjourney — одна из самых известных моделей искусственного интеллекта в области создания изображений. С её помощью можно создавать уникальный графический дизайн, визуальный контент, а также оптимизировать рутинные задачи: собирать референсы, разрабатывать концепции, стилизовать картинки и многое другое. Для веб-приложений Midjourney особенно полезна на ранних стадиях процесса проектирования: можно сравнивать различные стили, создавать мудборды и определять направление дизайна.

Вместе с коллегами мы собрали лучшие примеры, которые помогут получить качественный результат в работе с Midjourney.

Читать далее

Использование шейдеров во Flutter. Часть 1

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

Привет! На связи Юрий Петров, Flutter Team Lead в Friflex. Мы разрабатываем кроссплатформенные мобильные приложения для бизнеса и специализируемся на Flutter. В этой серии статей я поделюсь опытом, как с помощью шейдеров на фреймворке разрабатывать приложения с привлекательным и стильным визуалом, которые понравятся заказчику и клиентам.

Читать далее

Сравнение различных схем квантования для LLM

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

Как запустить локально LLM 70B параметров на 1 видеокарте с 24gb? Нужно квантование!

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

Читать далее

Ультрабюджетный домашний сервер и что он может

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


Давеча мне попалась интересная материнская плата на процессоре Celeron J1800 за цену аж в 850 рублей! В повседневном использовании этот процессор, мягко говоря, не очень хорош, а в роли домашнего сервера у него могут быть все шансы, особенно при такой цене. В статье проведём тесты и изучим его реальные возможности и потребление в паре с бюджетным SSD.
Читать дальше →

Как за один pet-проект получить два диплома

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

Все же знают серию компьютерных футбольных симуляторов FIFA? Раньше я много играл в эту игру. Кто-то скажет, что это бесполезная трата времени, но я с этим не согласен. Эта игра вдохновила меня на разработку pet-проекта, который стал моим бакалаврским дипломом.

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

Читать далее

Кластеризация в ML: от теоретических основ популярных алгоритмов к их реализации с нуля на Python

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

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

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

Читать далее

Рисуем эффект «Таноса» на Android (и не только)

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

Привет! Вопрос мобильным разработчикам: часто ли вам приходится работать с необычным UI? Если вы ответили утвердительно, то я по-доброму вам завидую. В своей повседневной практике мне в основном приходится работать со стандартным набором компонентов и их базовой настройкой. Абсолютно ничего не имею против, но хочется чего-то «эдакого»: кастомных компонентов, написанных с нуля, необычных анимаций и эффектов. Часто подобные вещи вызывают много споров (как среди разработчиков, так и конечных пользователей) а-ля «А на кой оно вообще надо», но лично для меня это ни что иное, как творчество. Кто-то красиво рисует, кто-то красиво поёт, а кто-то пишет красивые уникальные приложения, которыми интересно и приятно пользоваться. И мы, пожалуй, не можем обвинять авторов за бессмысленность «украшательств», как по-хорошему не можем судить художника за его работу.

К чему я – спросите вы. Я отвечу: настраиваю на нужный лад :) В рамках этой статьи мы коснёмся полезной темы и создадим что-то бесполезное в практическом смысле, но несомненно интересное и достаточно уникальное.

Уже интересно

Работа с часовыми поясами без библиотек

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

Итак, настал тот moment, когда вам нужно работать с датами в разных часовых поясах (Новый год же!), а ваш архитектор/начальник не разрешает использовать Moment Timezone или Luxon, потому что они увеличат размер вашей сборки, а для вашего проекта важно, чтобы UI грузился быстро. Или потому что вы делаете небольшую задачу, и непонятно пока, будет ли расширение работы с часовыми поясами.

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

Кто виноват и что делать?

Слепые капитаны ищут дно: почему российский бизнес – это болото, в котором барахтаются идиоты-«менеджеры»

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

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

Как часто вас подставляли или динамили разные невменяемые люди на работе? Бывало ли так, что вы орали матом в бессилии и хотели кому-нибудь сломать ноги за эпические фейлы? Сейчас я расскажу о том, почему так всё складывается.

Читать далее

По граблям, по граблям. Пишем отзывчивый интерактивный виджет IOS 17

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

Всем привет! На связи Анна Жаркова, руководитель группы мобильной разработки в компании Usetech. В 2023 году на WWDC Apple представили много нового и интересного API, среди которого были долгожданные интерактивные виджеты, реагирующие с помощью механизма AppIntent на нажатия и запускающие логику без переключения в основное приложение. Однако, как показывает практика, не все так просто и красиво, как Apple показывают на демонстрационных сессиях, а от беты до релиза что-то в API обязательно ломается или внезапно меняется.

Поэтому сегодня мы поговорим, как с помощью Widget Kit iOS 17 и AppIntent сделать виджет не только интерактивным, но и рабочим и отзывчивым в моменте, и обойти подводные камушки, оставленные разработчиками API. Рассматривать будем на примере самописного приложения для заметок TODO.



Для тех, кому не терпится, или кто хочет читать и смотреть код одновременно, сам код

Помимо обработки событий из самого виджета в таких приложениях также важно синхронизировать состояние между таргетами без потерь и задержек. Данные (наши тудушки и их состояние) мы сохраняем локально. Для этого используем инструмент для хранения данных SwiftData. Данный фреймворк также был представлен на WWDC 2023, и при его использовании в разных таргетах можно встретить тоже много подводных камней.
Читать дальше →

GET запросы на практике: правила, принципы и примеры

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

Я думаю, что вы не раз уже гуглили, заглядывали в статьи, манифесты IT-гигантов о лучших практиках проектирования API. Я тоже.

Но в большинстве из них всё ограничивается описанием URL ресурса, мотивацией использовать пагинацию, сложными словами про кэширование и SSL. Это, безусловно, необходимо для общего понимания технологий, но практически не помогает, когда ты сидишь перед пустой страницей и надо начать “проектировать контракт”.

Я работаю тимлидом направления системного анализа в X5Tech и за все время развития карьеры сталкивалась с большим количеством кейсов проектирования Web систем. IT продукты в большинстве очень динамичны: постоянно изменяются требования, появляются новые, итеративно улучшается пользовательский опыт (по принципу 20% усилий на 80% результата, а остальное доделаем потом).

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

В этой статье предлагаю спроектировать контракт по шагам, и на каждом из них я расскажу про общие рекомендации из копилочки “Полезное”, а также про личные правила и практики, полученные долгим опытом работы над постоянно меняющимися ИТ-продуктами, которые помогут для “дальновидного” проектирования GET REST API.

Читать далее

Оптимальный архитектурный шаблон iOS-приложения

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

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

Читать далее