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

Разработка

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

Операторы PostgreSQL для Kubernetes. Как мы выбирали идеальный вариант для организации системы DBaaS

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

Некоторое время назад у нас возникла задача организовать возможность создания managed баз данных. Сложность данной задачи в том, что нам надо развертывать и управлять тысячами баз данных PostgreSQL, которые обеспечивают репликацию, бэкапы, мониторинг и другие полезные пользователям функции. При этом в ядре нашей системы лежит Kubernetes, в котором запускаются приложения пользователей. И по ряду факторов нам требовалось запускать базы данных внутри кластера.

Чтобы не изобретать велосипед, мы решили рассмотреть известные операторы, позволяющие разворачивать базы данных PostgreSQL в Kubernetes и управлять ими.

В наш обзор вошли следующие решения

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

Новости

Запуск идеи стоит 5 млн, и это дорого. Как сэкономить на проекте? Спойлер: откажитесь от React

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

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

Рендеринг — это преобразование кода в визуализированную страницу. Самые распространённые типы — на сервере (server side rendering, или SSR) и в браузере клиента (client side rendering, или CSR). В последнее время мы чаще используем серверный рендеринг с помощью технологии HTMX и советуем его заказчикам. В статье расскажем, почему.

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

Управление обратным маятником в MATLAB Simulink без формул. Настройка PID регуляторов

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

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

Объект управления (Plant)

Модель перевернутого маятника соберем в библиотеке Multibody. Для этого нам не понадобится знание физики и математики. Библиотека Multibody предоставляет нам готовые блоки степеней свободы, твердых тел, преобразований координат, которые нужно только верно соединить. Собираем подсистемы отдельно для маятника и отдельно для тележки, и собираем все вместе. Результат на рисунке, модель в прикрепленных файлах.

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

Как я обработал один миллиард строк в PHP

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

Вероятно, вы уже слышали о соревновании под названием "The One Billion Row Challenge" (1brc), если же нет, то предлагаю ознакомиться с репозиторием 1brc Гуннара Морлинга.

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

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

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

Истории

Мем, ставший легендой: Doom можно запустить на чем угодно

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

Фанаты ретро-игр не дают умирать любимым играм, делая модификации или портируя их на современные версии консолей и ПО. И особняком здесь стоит культовая игра Doom 1993 года, которую стали запускать не только на ПК и консолях, а на любых устройствах, у которых есть экран и процессор. И это стало своего рода мемом. Игра, созданная на движке id Tech 1, была разработана так, что для игры требовались лишь самые скромные настройки.

С течением времени после выхода Doom развивались многие технологии. В 2007 году началась революция, когда Apple выпустила свой первый iPhone, и вскоре дисплеи стали неотъемлемой частью XXI века, интегрируясь во всё больше и больше продуктов и повседневных инструментов: холодильники, тостеры, кассовые аппараты, автомобили, электронные сигареты и даже тесты на беременность. Вместе с этим появилась возможность запустить Doom на всех этих устройствах. Таким образом, родилась концепция «Doom running on everything» (DROE), породившая культуру, в которой в Doom играли на банкоматах, калькуляторах, кубиках LEGO, картофеле и даже на вышеупомянутых тестах на беременность.

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

Будем ждать ещё больше историй о том, как энтузиасты запускают Doom при помощи подручных вещей, чтобы расправиться с демонами ада. А пока здесь собраны некоторые удивительные примеры того, как легендарную Doom запускают на различных устройствах.
Читать дальше →
Всего голосов 6: ↑5 и ↓1 +4
Комментарии 3

Приложение викторины: внедрение Cardoteka и основные паттерны проектирования с Riverpod

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

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

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

о слоях и взаимосвязях в архитектуре

формула: 2x реактивность = Riverpod + Cardoteka

особенности проектирования бизнес-логики

лучшие паттерны для работы с Cardoteka

определение репозиториев и про Trivia Api

настройка github actions для деплоя web и релиза подписанных apk 🎁

И всё это под лязг пластмассовых катан. Прошу, вы устанете, но будет весело!

Повеселиться и устать
Рейтинг 0
Комментарии 0

Android-приложение на Compose с нуля: Часть 2 (UI)

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

Здравствуй, дорогой читатель!

В статье рассматривается поэтапная разработка дизайн-системы и UI для Android-приложения "Калькулятор", используя библиотеку Jetpack Compose. Начнём с создания проекта и закончим запуском приложения на эмуляторе.

Ссылка на репозиторий: https://github.com/alekseyHunter/compose-tech-calculator

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

Смотрим на современный инструмент для FPGA

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

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

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

Что такое Data diode и зачем он нужен?

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

Представьте, что у вас есть две сети, которые необходимо защитить от несанкционированного доступа, DDoS-атак и утечек информации, но в то же время нужно передавать данные между ними. Здесь и приходит на помощь Data diode.

Data diode (диод данных), или однонаправленный шлюз, — это устройство, которое передает поток данных только в одном направлении. Отправить информацию обратно невозможно на физическом уровне.

Под катом рассказываем о том, как он устроен и в чем преимущества решения относительно других технологий защиты информации.
Читать дальше →
Всего голосов 7: ↑7 и ↓0 +7
Комментарии 8

Расчет количества газа необходимого для выполнения транзакции в Ethereum

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

Привет, Хабр! Продолжаю серию статей о газе в Ethereum. ​​В этой статье подробно разберем составляющие параметра gasUsed , без которого невозможно подсчитать стоимость транзакции. Будем разбирать формулы из "желтой бумаги" и копаться в коде клиента "Geth". Это даст основу для понимания, как газ потребляется во время исполнения любой транзакции. Если вы еще не читали статью про то, как рассчитывается комиссия за газ в Ethereum, то она здесь.

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

Контекст больше не предел: Линейка русскоязычных энкодеров ruRoPEBert и как она создавалась

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

Привет, Хабр! Если вы интересуетесь NLP или просто современными DL моделями, то приглашаю вас узнать, как можно, имея всего лишь одну A100, около 30 гигабайтов текста и несколько дней обучения, решить проблему ограниченного окна контекста для русскоязычных трансформеров. А ещё сделаем несколько оптимизаций и добьёмся почти лучших метрик в бенчмарке encodechka.

Погрузиться в контекст
Всего голосов 5: ↑5 и ↓0 +5
Комментарии 1

Книга «Грокаем Continuous Delivery»

Время на прочтение 10 мин
Количество просмотров 660
imageПривет, Хаброжители!

Код должен быть готов к релизу всегда!

Пайплайн Continuous Delivery автоматизирует процессы контроля версий, тестирования и развертывания при минимальном вмешательстве разработчика. Освойте инструменты и методы непрерывной доставки, и вы сможете быстро и последовательно добавлять функции и выпускать обновления.

«Грокаем Continuous Delivery» — это руководство по настройке и работе с пайплайном непрерывной доставки. В каждой главе рассматривается отдельный сценарий, с которым вы столкнетесь при создании системы CD, и приводятся реальные примеры, например автоматическое масштабирование и тестирование унаследованных приложений. Кристи Уилсон сопровождает каждый шаг иллюстрациями, кристально четкими объяснениями и практическими упражнениями для закрепления полученных знаний.
Читать дальше →
Всего голосов 7: ↑6 и ↓1 +5
Комментарии 1

Как я выживаю с диабетом при помощи Golang

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

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

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

Вы можете ответить: да кого это вообще волнует?

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

Оказывается, в мире есть не менее 8 миллионов людей, которых волнуют ответы на эти вопросы, и я один из них. В 2020 году у меня диагностировали сахарный диабет первого типа. Вероятно, вы слышали о диабете, но, возможно, не очень знакомы с первым типом, который встречается реже. До постановки диагноза я тоже не был с ним знаком, так что вот краткое объяснение.
Читать дальше →
Всего голосов 32: ↑30 и ↓2 +28
Комментарии 1

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

Moscow QA #3 — митап по тестированию ПО
Дата 14 марта
Время 18:30 – 21:30
Место
Москва Онлайн
Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн

От Рэя Брэдбери до советской системы «СФИНКС»: как эволюционировала концепция «умного дома»

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

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

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

Современные команды и фичи Git, которыми стоит пользоваться

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

Мы, разработчики ПО, пользуемся git каждый день, однако большинство из нас применяет только самые основные команды, например, addcommitpush и pull, как будто на дворе по-прежнему 2005 год.

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

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

Web3 приложение Twitter на React.js + Solidity | часть 1

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

Hello, в этой статье постараюсь подробно показать процесс создания dApp приложения на примере Twitter. Проект написан на ReactJS и Solidity. Контракт развернут в частной сети с помощью truffle и ganache.

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

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

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

Бьемся с индексацией парных неравенств в PostgreSQL

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

Я уже не раз писал, что условия с несколькими неравенствами (<, <=, >=, >) обычно плохо подходят для индексирования "классическим" btree, вызывают "тормоза", и необходимо придумывать различные нетривиальные подходы в PostgreSQL, чтобы добиться хорошей производительности подобного запроса.

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

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

Как я зарабатывал $10,000 в месяц на серверах ARK: Survival Evolved

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

Я — ведущий гейм дизайнер с опытом разработки крупных, хардкорных проектов в жанрах от MMORPG и CRPG до мобильной MOBA. Почти три года мы с лучшим другом продюсировали, дизайнили, разрабатывали и занимались живым оперированием своих серверов по игре ARK: Survival Evolved. За это время мы неплохо заработали (в среднем проект приносил $6000-12000 gross ежемесячно). Конечно же, мы столкнулись с тонной сложностей и челленджей, и выучили много уроков. В этой статье я хочу не только рассказать о нашем приключении, но и поделиться выученными уроками. Оперирование кастомных серверов огромных франшиз типа Roblox, Fortnite или Minecraft и других игр похожа на разработку игр в классическом понимании, но имеет под собой свою специфику. Этот опыт будет полезен не только моддерам, но и разработчикам и продюсерам игр. 

ARK: Survival Evolved — ММО экшен от 1 и 3-го лица с крафтом, строительством и динозаврами. На динозаврах в игре можно охотиться, можно приручать, ездить на них, разводить и воевать с другими племенами в игре, и это основная фишка, привлекающая игроков. Но настоящая основная особенность игры в том, что карты — собственно, ковчеги, объединены в кластеры, внутри которых игроки могут беспрепятственно путешествовать между карт, превращая мир игры в настоящее ММО — в отличие от большинства остальных подобных игр. Это гениальная игра, о которой невозможно рассказать в двух словах, и она доводит своих игроков до настоящей аддикции, и те проводят в ней тысячи и десятки тысяч часов.

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

Bazel, stamping, remote cache (часть 2)

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

В Bazel есть две крайне полезные фичи: stamping — позволяет встроить в артефакт данные о том, от какого коммита можно собрать аналогичный артефакт и remote cache и remote build — позволяет иметь общий кэш между сборщиками или даже собрать артефакты на ферме.

Ранее, к сожалению, эти фичи были взаимоисключающими, но с версии Bazel 7.0 можно использовать stamping с remote cache при помощи scrubbing-а. А сегодня вышла версия Bazel 7.1, в которой появилась возможность использовать stamping с remote build.

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

Трансформеры, группы преобразований и self-attention

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

В подвижном мире развивающихся нейросетевых архитектур главную роль играет эффективность работы моделей. Тонкая настройка сетей под конкретные задачи предусматривает интеграцию в них априорных знаний. Делается это посредством стратегических корректировок архитектур сетей. Это — процедура, выходящая за рамки подстройки параметров. Речь идёт о внедрении в нейросеть информации, которая позволит сети понять то, что нужно её создателю. Один из способов это сделать заключается в использовании априорных знаний геометрического характера. Именно этому и посвящена данная статья.

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