Как стать автором
Обновить
0
0
Отправить сообщение

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

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

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

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

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

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

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

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

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

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

Идея создавать полный стек веб или мобильного приложения с использованием одной технологии не является новой. Этим путем уже прошел 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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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




Читать дальше →
Всего голосов 108: ↑106 и ↓2+104
Комментарии27

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Читать далее
Всего голосов 68: ↑62 и ↓6+67
Комментарии268

Все еще работаете с access token на клиенте? Тогда мы идем к вам

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

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

В статье рассмотрим причины необходимости работы с токеном на клиенте веб-приложений, узнаем ,что лучше для хранения токена: localStorage, sessionStorage или cookie без флага HttpOnly (спойлер, ничего из этого), а также посмотрим на меры воздействия, которые можно использовать для снижения риска утечки токена посредством различных уязвимостей.

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

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

Абсолютно бесплатный VPN с бесплатного VPS

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

Думаю про VPN слышали все, и многим приходилось им пользоваться. При этом использование готового VPN, которым руководит какой - то неизвестный человек, не является хорошей идей. Тем более в России на данный момент пытаются блокировать, как сами VPN провайдеры (Windscribe, Proton и другие известные сервисы), так и сами протоколы.

Читать далее
Всего голосов 86: ↑82 и ↓4+88
Комментарии112

Математика для Data Science и машинного обучения за 8 месяцев. Подробный план обучения

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

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

Машинное обучение держится на трёх основных столпах:

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

Почему умножение матриц такое

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

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

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

Пишу диаграммы последовательностей текстом (кодом). Вы тоже можете

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

Я работаю бизнес-аналитиком. Создание диаграмм последовательностей (sequence diagram) – часть регулярной рутины. Всё классно. Но процесс правок…

К счастью, я нашел для себя решение. Теперь я не рисую sequence diagram, а пишу "кодом". Это легко, быстро и удобно.

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

Sir Markdown. Лекция Яндекса

Время на прочтение10 мин
Количество просмотров28K
При разработке документации мы руководствуемся не только стандартами, но и удобством её использования. Стандарты определяют состав и форму документации, а формат строится исходя из удобства. Разработчик Сергей Бочаров рассказывает о пути Markdown-документа и о проблемах, которые приходится решать в обмен на простоту использования этого формата.


У меня иногда складывается впечатление, что не он служит для нас, а мы служим для этого формата. Поэтому — сэр Markdown.

Всего голосов 70: ↑67 и ↓3+64
Комментарии20

Deeplinks и Flutter

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

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

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

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность