Pull to refresh
0
0
Send message

Model-Widget-WidgetModel, или какой архитектурой пользуется Flutter-команда в Surf

Reading time9 min
Views9.3K

Привет, меня зовут Артём. Я руководитель Flutter-разработки в Surf и со-ведущий FlutterDev подкаста.


Flutter-отделу в Surf уже больше года. За это время мы сделали несколько проектов: от маленьких служебных, до полноценных е-коммерс и банкинга. Как минимум, многие из вас уже могли видеть приложение аптеки «Ригла». В статье я расскажу про недавно вышедший пакет mwwm — архитектуру, на которой построены все наши проекты.


Читать дальше →
Total votes 5: ↑5 and ↓0+5
Comments13

Как улучшить производительность вашего Flutter приложения

Reading time13 min
Views13K


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

Читать дальше →
Total votes 14: ↑14 and ↓0+14
Comments9

Не говорите «I feel myself», и другие правила английского языка, которые вгоняют в ступор

Reading time6 min
Views140K
Английский язык на первый взгляд довольно логичный. Когда только принимаешься за его изучение, практически все правила кажутся понятными. Но среди них есть и ужасно странные правила и нормы.

Сегодня мы расскажем о некоторых правилах английского языка, при знакомстве с которыми хочется сказать: «Да что ты, черт побери, такое несешь?». Готовы? Поехали!


Total votes 40: ↑32 and ↓8+37
Comments82

Dart. Всё, что надо знать про константы

Reading time4 min
Views16K


Константы — это не просто странная версия final переменных, которая будет преследовать вас во сне со всеми связанными с ними ошибками. Compile-time константы – это хороший способ повысить производительность вашего приложения, не создавая один и тот же объект несколько раз, а так сказать, «предварительно создавая» объекты во время компиляции.


const или final?


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

Читать дальше →
Total votes 8: ↑8 and ↓0+8
Comments2

Артикли в английском: безжалостная война правил и исключений

Reading time21 min
Views69K


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

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

Нет смысла писать ещё одну статью о базовых правилах употребления артиклей в английском. Сегодня я расскажу о правилах и о способах их нарушить.
Читать дальше →
Total votes 34: ↑32 and ↓2+38
Comments69

В CodePen добавлена поддержка Flutter

Reading time4 min
Views2.6K


Сегодня (15 апреля 2020) мы рады сообщить, что CodePen, основная среда разработки для миллионов frontend разработчиков и дизайнеров, добавила поддержку Flutter! Для веб-разработчиков CodePen уже давно является отличным местом для обмена экспериментами по дизайну, новыми подходами и идеями. Теперь с появлением Flutter CodePen предлагает аудитории новые возможности, чтобы учиться, делиться и продвигать свое творчество.


Что говорит Alex Vazquez (один из соучредителей CodePen):

Читать дальше →
Total votes 8: ↑8 and ↓0+8
Comments0

Про фразовые глаголы-3 (on/off)

Reading time4 min
Views24K
Перед этой статьёй рекомендуется прочитать две предыдущие части:
1. habr.com/ru/post/495794
2. habr.com/ru/post/496190
On и Off обычно имеют противоположный смысл, поэтому мне показалось хорошей идеей совместить обзоры этих частиц.

И предлог, и частица on соответствуют русскому «на». Тут логика вполне очевидная: «на» – это и предлог (говорим о поверхностях: «на стене/столе»), и приставка – НА-сыпать (сыпать на поверхность).

Put – класть, put on – «на-кладывать». Например, put on makeup – «на-кладывать» грим. Любой предмет одежды, обуви, головной убор носители английского языка тоже накладывают, а не надевают, как у нас: put on a hat – надеть шляпу. У них даже вес тела накладывают: put on weight по-английски «набрать вес».

Часто ON соответствует русской приставке «про-». «Про-» обычно означает «двигаться вперёд»: про-двигаться, про-лезать, про-двигать. Возьмём фразовый глагол (ФГ) get on. Get означает «двигаться, перемещаться», get on буквально «про-двигаться». Или в пространстве, или, метафорически, в жизни или карьере: Young people try to get on in life – Молодые люди стараются продвигаться в жизни.
Читать дальше →
Total votes 33: ↑30 and ↓3+41
Comments23

6 ошибок в английских словах, которые жутко бесят нейтивов

Reading time6 min
Views43K
Ошибки — это неизбежная часть обучения. Особенно, когда изучаешь иностранный язык. Главное — вовремя понять, что допустил ошибку, и исправить ее.

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


Читать дальше →
Total votes 45: ↑30 and ↓15+29
Comments103

Редактор кода Visual Studio Code. Самый подробный гайд по настройке и установке плагинов для начинающих

Reading time23 min
Views816K
Бесплатный, мощный, очень популярный, с кучей дополнений, да что там говорить, сам Фейсбук выбрал его в качестве основного редактора!


Сегодня речь пойдет о редакторе кода Visual Studio Code или просто VS Code. Мы с тобой его установим, настроим, а также применим плагины, которые существенно упростят нам работу.
Читать дальше →
Total votes 15: ↑12 and ↓3+15
Comments18

Принцип подстановки Лисков

Reading time6 min
Views51K

Всем привет, меня зовут Константин. Я занимаюсь разработкой на Java в Tinkoff.ru и люблю SOLID. В этой статье мы сформулируем принцип подстановки Лисков, покажем его связь с принципом Открытости-Закрытости, узнаем, как правильно формировать иерархию наследования и ответим на философский вопрос о том, является ли квадрат прямоугольником.


Читать дальше →
Total votes 43: ↑33 and ↓10+30
Comments75

Кросскомпиляция выполняемых файлов Rust для Windows из Linux

Reading time10 min
Views16K

Наверное не будет уж очень удивительным если я тут, на IT площадке Хабра, скажу что я иногда балую себя программированием.


Основная OS у меня Linux, но иногда приходится собирать исполняемые файлы и для Windows. И естественно что перегружаться в Windows только для сборки exe не особо хочется. С языками C и C++ проблем нет, давно существует кросскомпилятор MinGW, который прекрасно с этим справляется. Про Python и Java даже упоминать не стоит, кроссплатформенность в них изначально. Но в прошлом году я решил попробовать такой пока что новомодный язык, как Rust. При сборке исполняемого файла при помощи включённого в дистрибутив Rust пакетного менеджера cargo вроде как достаточно задать ключ --target, при помощи которого указать результирующий процессор, архитектуру и ABI и при сборке из Linux в результате получить exe, который будет являться стандартным исполняемым файлом для Windows. Но пытаясь так сделать:


cargo build --target x86_64-pc-windows-gnu

я получил только сообщения об ошибках линкера:


error: linking with `gcc` failed: exit code: 1

[...]

  = note: /usr/bin/ld: unrecognized option '--nxcompat'
          /usr/bin/ld: use the --help option for usage information
          collect2: error: ld returned 1 exit status

error: aborting due to previous error

error: could not compile `foobar`.

Если кому интересно как я это поборол и теперь спокойно могу кросскомпилировать программы на Rust для Windows, не покидая Linux, добро пожаловать под кат.

Читать дальше →
Total votes 36: ↑36 and ↓0+36
Comments16

Роботаракан Петя за десять баксов

Reading time10 min
Views30K

Знакомьтесь с Петей, шестиногом о трёх сервоприводах


Продолжаю публикацию статей из серии "ардуино головного мозга". Петя — это очень дешёвый (примерно десять баксов) гексапод. Он может быть прекрасным проектом на один ненастный выходной, который развлечёт как и взрослых, так и детей. Раз уж мы про развлечения, вот вам видеоролик с Петей, танцующим под фанк-музыку:


Читать дальше →
Total votes 104: ↑104 and ↓0+104
Comments48

О работе ПК на примере Windows 10 и клавиатуры ч.2

Reading time16 min
Views44K
В этой части мы рассмотрим какой путь проходит информация о нажатой клавише от клавиатуры до CPU, будет очень много картинок и это не последняя часть. Я буду рассказывать об этом с точки зрения программиста который пишет в режиме пользователя — пользовательские програмы, web, мобильные приложения — поэтому здесь могут быть неточности. Люди занимающиеся электроникой навряд ли найдут для себя что-то полезное. Первая часть находится здесь.


Проблема высшего программистского образования в том что студенты весьма подробно изучают отдельные аспекты вырванные из контекста не понимая как это всё увязывается вместе. Несколько семестров высшей математики, чтобы понимать физику, чтобы понимать электротехнику, электроприборы, ассемблер, ОС, алгоритмы, системное программирование и куча других предметов утрамбованных в стандартную пятилетнюю программу. Обилие деталей и никто не объясняет как это вписывается в общую картину, предполагается что через 5 лет студент сам увяжет это в голове, а потом пойдёт работать с .Net и никогда не притронется к электронике и режиму ядра. Я считаю, что не нужно так подробно знать о работе компьютера, достаточно общего понимания что происходит ниже по технологическому стеку. Если бы люди составляющие программы обучения для ВУЗов открывали автошколы, вы бы учили русский язык, каллиграфию и гидродинамику, потому как надо общаться с инспекторами, менять жидкости и писать объяснительные. В статье будут некоторые неточности, так что для сдачи экзамена по профильным предметам она не подойдёт, но после неё будет легче понять устройство ПК.

Под катом трафик.
Читать дальше →
Total votes 32: ↑20 and ↓12+17
Comments68

Как мы потеряли «Мир»: пожар на космической станции, столкновение с грузовиком «Прогресс», разгерметизация

Reading time23 min
Views86K
20-го февраля 2020-го года исполняется 34 года с момента запуска и ввода в эксплуатацию космической станции «Мир». Станции, которая была обитаема с 13 марта 1986 года по 16 июня 2000 года. И могла быть обитаема ещё, если бы…

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



23 февраля 1997 года на станции «Мир» должен был погибнуть весь международный экипаж – 4 российских космонавта, один немецкий и один американский астронавт. И тогда станцию «Мир» пришлось бы затопить не планово – весной 2001 года, а вынужденно, на 4 года раньше, с мертвым экипажем на борту. Об этой экспедиции до 2006 года принято было молчать, и до сих пор о ней мало что известно, кроме самих космонавтов и руководителей полета, никто не знал подробностей случившегося. В 2006-м, космонавты 23 международной экспедиции согласились рассказать, что же на самом деле происходило на космической станции, заложниками которой они оказались и Первый канал снял отличный документальный фильм об этом — «Некуда бежать. Пожар на космической станции», который сегодня доступен на Youtube, сайт студии Роскосмоса, почему-то выдаёт ошибку. Возможно потому, что там сказали не всю правду или потому, что правда не совсем та.

Пожар потушили, но он имел страшные последствия. Несколько месяцев космонавтам пришлось жить при температуре более +40 С, дышать ядовитыми парами этиленгликоля, а затем спасать станцию от разгерметизации, вызванной столкновением с 10-тонным грузовым кораблем «Прогресс».

И совсем недавно мой друг нашёл версию произошедшего столкновения от американцев (смотреть с 1:18:00), где астронавт Майкл Фоул, непосредственный участник событий, утверждает, что столкновение было результатом эксперимента по ручной стыковке со станцией, а что самого эксперимента не должно было быть.
Читать дальше →
Total votes 152: ↑136 and ↓16+156
Comments526

Коронавирус 2019-nCoV. FAQ по защите органов дыхания и дезинфекции

Reading time16 min
Views583K
Китайский коронавирус, он же «пневмония Уханя» на неделе стал одной из самых горячих тем. В классической «кто виноват и что делать» меня, традиционно, волнует только вторая часть. Сегодня под катом — статья про дезинфекцию, маски и обеззараживание помещений. Объединил в одной статье несколько заметок из своего телеграм-канала. Кладем в закладки и шлем друзьям!


Стоп! 2019-nCoV
Total votes 79: ↑72 and ↓7+89
Comments409

Web-приложения на Flask: как бороться с циклическими импортами

Reading time4 min
Views8.1K
Flask – один из самых популярных фреймворков Python, но некоторые ошибки при его использовании могут привести к определенным затруднениям. В этой статье мы расскажем о том, как не допустить возникновения циклических импортов в проекте.

Читать дальше →
Total votes 5: ↑5 and ↓0+5
Comments11

SQL HowTo: пишем while-цикл прямо в запросе, или «Элементарная трехходовка»

Reading time5 min
Views35K
Периодически возникает задача поиска связанных данных по набору ключей, пока не наберем нужное суммарное количество записей.

Наиболее «жизненный» пример — вывести 20 самых старых задач, числящихся на списке сотрудников (например, в рамках одного подразделения). Для различных управленческих «дашбордов» с краткими выжимками по участкам работы похожая тема требуется достаточно часто.



В статье рассмотрим реализацию на PostgreSQL «наивного» варианта решения такой задачи, «поумнее» и совсем сложный алгоритм «цикла» на SQL с условием выхода от найденных данных, который может быть полезен как для общего развития, так и для применения в других похожих случаях.
Читать дальше →
Total votes 6: ↑5 and ↓1+8
Comments5

Интеграционные тесты на Flutter — это просто

Reading time6 min
Views8K

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

Читать дальше →
Total votes 5: ↑5 and ↓0+5
Comments7

Полезные советы по Python, которых вы ещё не встречали

Reading time7 min
Views35K
Написано очень много статей, посвящённых интересным возможностям Python. В них идёт речь о распаковке списков и кортежей в переменные, о частичном применении функций, о работе с итерируемыми объектами. Но в Python есть гораздо больше всего интересного. Автор статьи, перевод которой мы сегодня публикуем, говорит, что хочет рассказать о некоторых возможностях Python, которыми он пользуется. При этом описания этих возможностей, подобного тому, которое приведено здесь, ему пока не встречалось. Возможно, что и вы о них тоже ещё нигде не читали.


Читать дальше →
Total votes 42: ↑41 and ↓1+60
Comments7

SQL запросы быстро. Часть 1

Reading time5 min
Views1.5M
Подписаться в telegram: t.me/korocheproduct

Введение


Язык SQL очень прочно влился в жизнь бизнес-аналитиков и требования к кандидатам благодаря простоте, удобству и распространенности. Из собственного опыта могу сказать, что наиболее часто SQL используется для формирования выгрузок, витрин (с последующим построением отчетов на основе этих витрин) и администрирования баз данных. И поскольку повседневная работа аналитика неизбежно связана с выгрузками данных и витринами, навык написания SQL запросов может стать фактором, из-за которого кандидат или получит преимущество, или будет отсеян. Печальная новость в том, что не каждый может рассчитывать получить его на студенческой скамье. Хорошая новость в том, что в изучении SQL нет ничего сложного, это быстро, а синтаксис запросов прост и понятен. Особенно это касается тех, кому уже доводилось сталкиваться с более сложными языками.

Обучение SQL запросам я разделил на три части. Эта часть посвящена базовому синтаксису, который используется в 80-90% случаев. Следующие две части будут посвящены подзапросам, Join'ам и специальным операторам. Цель гайдов: быстро и на практике отработать синтаксис SQL, чтобы добавить его к арсеналу навыков.

Практика


Введение в синтаксис будет рассмотрено на примере открытой базы данных, предназначенной специально для практики SQL. Чтобы твое обучение прошло максимально эффективно, открой ссылку ниже в новой вкладке и сразу запускай приведенные примеры, это позволит тебе лучше закрепить материал и самостоятельно поработать с синтаксисом.
Читать дальше →
Total votes 26: ↑16 and ↓10+12
Comments36
1
23 ...

Information

Rating
Does not participate
Registered
Activity