Pull to refresh
-1
0
Send message

Как легко сделать подмену данных на вебе?

Level of difficultyMedium
Reading time3 min
Views25K

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

Хочу поделиться интересным приложением, которое значительно упрощает процесс веб-тестирования.

В роли QA-инженера, активно тестирующего веб, я часто сталкиваюсь с необходимостью изменения запросов/ответов API, статус кода ответа и других параметров. Иногда возникают ситуации, когда фронт готов, но доработки с бэка еще предстоит дождаться.

Тут на помощь приходит Requestly! 

Читать далее

Паттерны проектирования в Dart. Часть 2

Reading time12 min
Views7K

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

Читать далее

Кодогенерация в Dart. Часть 1. Основы

Reading time3 min
Views7.7K

Известно, что для программиста очень хорошо быть ленивым, потому что делать больше с меньшими затратами — ключ к прогрессу. Никто не любит делать одно и то же снова и снова. Это утомительно, скучно, да и совсем не креативно. Повторяя одно и то же действие мы часто делаем ошибки, но, к счастью, есть те, кто действительно хорош и эффективен в выполнении однотипных задач. И это КОМПЬЮТЕРЫ!


https://yougottobekidding.wordpress.com/2012/02/18/geeks-and-repetitive-tasks/


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


В мире Android разработки такие инструменты хорошо известны каждому разработчику. Это и Retrofit, и Dagger, и Room. А как насчет Dart? И не менее важный вопрос: что нам нужно, чтобы создавать собственные инструменты для кодогенерации?

Читать дальше →

Кодогенерация в Dart. Часть 2. Аннотации, source_gen и build_runner

Reading time7 min
Views9.7K

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


Читать дальше →

Разработка мультиплеерной игры на Dart+Flutter

Level of difficultyEasy
Reading time14 min
Views7.1K

Разработка простой мультиплеерной игры с использованием языка программирования dart на сервере и flutter+flame на клиенте. Небольшой гайд от любителя игростроя.

Читать далее

Разработка мультиплеерной игры на Dart+Flutter. Часть 2

Level of difficultyEasy
Reading time12 min
Views2.5K

Разработка простой мультиплеерной игры с использованием языка программирования dart на сервере и flutter+flame на клиенте. Небольшой гайд от любителя игростроя. Часть 2

Читать далее

Как мы WASM в PWA на Flutter прикручивали

Reading time6 min
Views3.1K

— Парни, у нас PWA тормозит! — в голосе Димы чувствовались нотки интриги.

Вообще-то мы разрабатываем на Flutter кроссплатформенное приложение для мобильных устройств, но коль уж фреймворк позволяет, на сдачу запустили и веб-версию. Поначалу с PWA мы отхватили немало проблем, но со временем большую часть из них победили. Только вот производительность (из песни слов не выкинешь) так и осталась ахиллесовой пятой приложения — даже на достаточно мощных устройствах нет-нет, да проскакивали микрофризы.

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

Читать далее

Использование Provider, Riverpod, Bloc(Cubit), Redux, MobX на одном простом примере

Level of difficultyEasy
Reading time12 min
Views15K

Управление состоянием – это фундаментальная концепция всех фреймворков для разработки приложений, и Flutter не является исключением. Существует несколько техник и инструментов, которые можно использовать, и выбор наиболее подходящего из них часто зависит от сложности и требований приложения, которое вы создаете. В этой статье рассмотрено несколько отличных способов управления состоянием – (с помощью) Provider, Riverpod, Bloc(Cubit), Redux, Mobx.

Узнать

System Design для самых маленьких. Reference к интервью

Level of difficultyEasy
Reading time5 min
Views26K

Эта статья-инструкция по построению высоконагруженных распределенных систем. Описанный подход может быть полезен как reference при подготовке к интервью по system design в FAANG и не только.

Читать далее

Dart для бэкэндеров. Часть 1

Level of difficultyMedium
Reading time14 min
Views9.3K

Идея создавать полный стек веб или мобильного приложения с использованием одной технологии не является новой. Этим путем уже прошел Javascript (JS + React/Native + Node.JS), Python (cowasm + kivy) и даже Go (go/wasm, gomobile) и Dart тоже не исключение (web для него естественная среда обитания, поскольку язык создавался для замены JavaScript, также поддерживается компиляция в Wasm с включенным экспериментом wasm gc, для мобильной разработки существует фреймворк Flutter). Кроме того, приложение на Dart может компилироваться в исполняемый файл и это может дать прирост производительности для высоконагруженных систем. В этой статье мы рассмотрим несколько решений для создания бэкэнда на Dart, в первой части обсудим общие вопросы архитектуры и создадим простой сервер без фреймворка и с использованием Shelf, а во второй части статьи речь пойдет о Frog и Conduit.

Читать далее

Дружим Flutter с С# и С++

Level of difficultyMedium
Reading time8 min
Views12K

На Flutter`е очень удобно и хорошо пишутся интерфейсы для пользователей. Но использовать Dart для решения алгоритмических задач тяжко и неэффективно. Семейство Си справляется гораздо лучше и позволяет легко распараллеливать вычисления. Кроме того, за многолетнюю историю С++ и С# обзавелись множеством полезных библиотек, не все из которых имеют аналоги во Flutter.

Зная про существование библиотеки FFI для Flutter, что позволяет даже синхронно запускать Си-шный код, я решил закопаться в эту тему и попробовать объединить наследие Си и их эффективность с удобным фреймворком. Учитывая то, что в интернете маловато информации про использование FFI, особенно с C#, я решил поделиться своим опытом "построения мостов" на примере двух приложений в этой статье.

Читать далее

Паттерны проектирования на Dart с примерами кода. Часть 2

Level of difficultyMedium
Reading time21 min
Views5K

Команда Flutter-разработчиков Mad Brains продолжает рассказывать про паттерны проектирования на Dart. Использование паттернов проектирования помогает разработчикам создавать более масштабируемое и сопровождаемое ПО, а также улучшать читаемость и содержательность кода. Первую часть статьи можно прочитать тут.

Читать далее

Проектируем flutter-приложение «чистым» способом используя bloc

Level of difficultyMedium
Reading time10 min
Views31K

Спроектировать и построить приложение не так-то просто. Как правило, всё упирается в продуманную архитектуру, которая должна быть масштабируемой и легко поддерживаемой. Данный материал предлагает вполне элегантный способ, в некотором роде основанный на чистой архитектуре (Clean Architecture).

Рассмотрены:

взаимодействия слоёв

структура папок

основные характеристики каждого уровня

Предлагаю определить сильные и слабые стороны данного предложения.

?

Как не «сломать» вёрстку Flutter-приложения из-за textScaleFactor

Level of difficultyEasy
Reading time4 min
Views3.5K

Иногда на смартфоне неожиданно «ломается» вёрстка приложения, при этом в эмуляторе всё работает корректно. Рассказываем, в чём может быть причина.

Читать далее

Как рассчитать скидку за первый и последний этаж почти без формул в Excel

Level of difficultyEasy
Reading time6 min
Views4.6K

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

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

Изложенный подход призван аргументировать представление о том, что Big Data не является прерогативой дата сатанистов, но в известной степени доступен неспециалистам. Материал может быть интересен всем, кроме работающих с данными профессионально. Приведенные приемы будут востребованы в работе с данными для риелторов и оценщиков без навыков программирования. Технохардкор в данном случае заключается не в инсайтах применения фреймворков типа MapReduce, а в реализации всего пайплайна средствами общеизвестного офисного приложения.

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

Читать далее

Способы создания авторизации на сайте. Руководство с примерами. Безопасность в браузере

Level of difficultyMedium
Reading time14 min
Views67K

В данной статье мы разберем 4 способа как зарегистрировать нового пользователя:

1.Сторонние сервисы авторизации (такие как Google)

2.Авторизация с использованием токенов

3.Авторизация с помощью номера телефона

4.Логин + Пароль

Статья даст вам конкретный алгоритм реализации каждого способа. Необходимые библиотеки, а также примеры кода. Я постараюсь приводить в пример реализацию на чистейшем JavaScript, для того чтобы вы смогли внедрить функционал в свое проект, не зависимо от используемого фреймворка, однако также будут примеры для тандема Angular + Asp .Net Core. Мы обсудим как защитить ваш сайт от взлома. На сколько это сложно и возможно ли в принципе гарантировать 100% защиту. Итак, давайте приступим.

Читать далее

Сети для самых маленьких. Часть девятая. Мультикаст

Reading time51 min
Views714K

Наш умозрительный провайдер linkmeup взрослеет и обрастает по-тихоньку всеми услугами обычных операторов связи. Теперь мы доросли до IPTV.
Отсюда вытекает необходимость настройки мультикастовой маршрутизации и в первую очередь понимание того, что вообще такое мультикаст.
Это первое отклонение от привычных нам принципов работы IP-сетей. Всё-таки парадигма многоадресной рассылки в корне отличается от тёплого лампового юникаста.
Можно даже сказать, это в некоторой степени бросает вызов гибкости вашего разума в понимании новых подходов.

В этой статье сосредоточимся на следующем:




Читать дальше →

Не принимай оффер в Data Science, пока…

Level of difficultyMedium
Reading time20 min
Views22K

Переход на мою текущую позицию занял около четырёх месяцев: с мая по сентябрь я проходил HR, будущего руководителя, его команду, руководителя руководителя и руководителя руководителя руководителя. Почти всё это время я задавал вопросы, чтобы понять подходит мне эта позиция или нет. В итоге, когда ответы меня удовлетворили — я согласился на предложение, и сейчас я Head of Machine Learning Laboratory в Альфа-Банке. 

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

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

Простым перечислением не ограничусь — попытаюсь донести, почему считаю их крайне важными. Более того, под капотом вы сможете узнать мои ответы на эти вопросы.

Читать далее

Простейшая нейросеть: еще раз и подробнее

Reading time10 min
Views65K

Машинное обучение это незаменимый инструмент для решения задач, которые легко решаются людьми, но не классическими программами. Ребенок легко поймет, что перед ним буква А, а не Д, однако программы без помощи машинного обучения справляются с этим весьма средне. И едва ли вообще справляются при минимальных помехах. Нейросети же уже сейчас решают многие задачи (включая эту) намного лучше людей. Их способность обучаться на примерах и выдавать верный результат поистине очаровывает, однако за ней лежит простая математика. Рассмотрим это на примере простого перцептрона.
Данная статья представляет собой пересказ-конспект первой части книги Тарика Рашида "Создай свою нейросеть" для тех, кто начал изучать тему, не понял отдельные детали или с трудом охватывает общую картину.

Читать далее

Как получить доступ к chatGPT в России

Reading time4 min
Views1.5M

Всем привет! Перед началом статьи сразу скажу:

САМЫЙ ВАЖНЫЙ ДИСКЛЕЙМЕР: естественно, покупая смс на чужой номер вы полностью компрометируете безопасность своего аккаунта. Мало ли кто его потом еще купит для получения доступа. Поэтому, помните, что представленный в данной статье способ получения доступа - это только на "поиграться". Не стоит вводить туда свои реальные почты и использовать это в работе, так как полученный доступ может быть в любой момент взломан/прикрыт.

Но да ладно, приступим. Здесь без всякого объяснения того что такое ChatGPT - кому надо тот знает. В этой статье я хочу поделиться путем который вас за 30Р может к этому боту привести. Вдаваться в детали бота я не хочу, это чисто статья для ребят которые хотят без лишних запар пройти путь человека который доступ к боту уже получил :)

Как и многих вокруг, меня удивила новая технология от Open AI. Попытался зайти и зарегистрироваться через гугл, но...

Читать далее

Information

Rating
Does not participate
Registered
Activity