Pull to refresh
14
0
Виктор Котляник @navar

User

Send message

Где заканчивается Flutter и начинается платформа?

Level of difficultyMedium
Reading time11 min
Views3.6K

Сердце фреймворка Flutter (который для разработчиков часто представляется только в виде набора классов на языке Dart) написано на языке С и компилируется в двоичный артефакт, известный как Flutter Engine, подключаемый к приложению и используемый из Dart-классов через механизм нативного связывания (аннотации @pragma('vm:entry-point') для вызовов из Flutter Engine в Dart, @Native и external для обращения к C++ коду во Flutter Engine из Dart).

Но в действительности Flutter Engine не имеет никакого платформо-специфического кода (при этом собран под целевую аппаратную архитектуру) и не знает, как работает платформенный event loop, как создавать потоки, на какой поверхности выполнять отрисовку сцены и не может получать информацию о действиях пользователя (касание экрана, перемещение указателя мыши, нажатие клавиш) и системных событиях. Такое архитектурное решение было сделано для того, чтобы иметь возможность запускать Flutter-приложения потенциально на любом устройстве с экраном (даже светодиодной панелью). В этой статье мы поговорим про Flutter Embedder, его роль в запуске приложения и привязке к системным event loop, а также рассмотрим сборку простого embedder для публикации Flutter приложения как VNC-сервера.

Читать далее
Total votes 21: ↑20 and ↓1+21
Comments1

К 30-летнему юбилею DOOM: как два садиста, психопат и мормон создали одну из величайших игр в истории? Часть 6

Level of difficultyEasy
Reading time8 min
Views15K

В прошлый раз мы оставили наших героев в тот важный для нашей эпопеи момент, когда в процессе работы над Wolfenstein 3D они перебрались из холодного криминального пригорода Мадисона, штат Висконсин, в жаркий и консервативный пригород Далласа под названием Мескит. Именно этому месту было суждено стать колыбелью Doom. Что иронично, именно жители Мескита десятком лет ранее пытались запретить в США компьютерные игры за разврат, сотонизм и насилие.

Все части цикла статей о создании DOOM:
Читать дальше →
Total votes 56: ↑55 and ↓1+74
Comments15

Хитрый виджет: разбор тестового Flutter-задания. Детективная нуар-история

Level of difficultyMedium
Reading time24 min
Views3K

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

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

Полиция прибыла на место происшествия в мотель «Burnout Meteo Inn» за час до меня. В 911 сообщили о подозрительном…

Читать далее
Total votes 6: ↑6 and ↓0+6
Comments10

Как я стал Google Developer Expert по Flutter

Level of difficultyEasy
Reading time5 min
Views7.1K

У Google есть программа для экспертов в их технологиях. Чтобы попасть в неё, нужно выступать, писать, обучать, менторить или делать open-source в технологиях Google. Программа называется “Google Developer Experts”, и это самое привилегированное сообщество разработчиков, о котором я знаю.

Читать далее
Total votes 8: ↑5 and ↓3+4
Comments2

Мой опыт flutter собеседований

Reading time3 min
Views21K

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

Читать далее
Total votes 8: ↑5 and ↓3+5
Comments14

Мои вопросы работодателю, когда подаюсь на разработчика

Reading time9 min
Views88K

За последние 10 лет я поменял 3 работы, прособеседовался с 10+ компаний на позицию разработчика (software engineer) и вел переписку с HR/рекрутерами из нескольких десятков фирм. По ходу дела заметил, что вопросы, которые я задаю на собеседовании с менеджером/командой или с HR, повторяются, и решил их структурировать. Некоторые из них являются общими, и их может задать кандидат на почти любую вакансию; другие касаются только вакансий для программистов. В этой статье поделюсь с вами наиболее типичными и важными вопросами, которые, на мой взгляд, может задать соискатель потенциальному работодателю.

Читать далее
Total votes 72: ↑66 and ↓6+78
Comments70

С днем рождения, Кевин Келли: еще 103 непрошенных совета

Reading time12 min
Views13K
image

Кевин Келли, создатель журнала WIRED, уже третий год подряд на свой день рождения дарит всем непрошенные советы (вот прошлый перевод на Хабре: 68 непрошеных советов (c ↑+78))

28 апреля ему исполнилось 70 лет и он выкатил еще 103 непрошенных совета (они просто взорвали HackerNews)

Хочется побыстрее поделиться этими премудростями от прикольного дядьки и поэтому выкладываю перевод «в реальном времени» (если хотите помочь с переводом — контрибьютьте тут)

  1. Примерно в 99% случаев подходящее время — прямо сейчас.
  2. Никто так не впечатлен вашим имуществом, как вы сами.
  3. Никогда не работайте на того, кем не хотите стать.
  4. Развивайте отношения с 12 людьми, которые вас любят, потому что они стоят более 12 миллионов человек, которым вы нравитесь.
  5. Не повторяйте одни и те же ошибки; попробуй сделать новые ошибки.

Читать дальше →
Total votes 19: ↑13 and ↓6+10
Comments7

Перейти с Linux на macOS и не сойти с ума

Reading time9 min
Views82K

Ноутбук — главный девайс в моей жизни, я провожу за ним бо́льшую часть суток. Он должен быть лёгким, компактным и мощным. Долгое время лидером по этим параметрам был Dell XPS 13, но всё поменялось с выходом MacBook Air на процессоре M1.

Air всего на 100 граммов тяжелее XPS 13, но примерно в три раза мощнее, автономнее и не нуждается в активном охлаждении. Никогда не думал, что скажу подобное про технику Apple, но MacBook Air — самое крутое устройство в своей весовой категории на рынке, оставившее конкурентов далеко позади.

Я фанат Линукса, эта операционная система для меня больше, чем просто окружение. Это философия, новостная повестка и постоянный предмет обсуждения. Поэтому сама идея отказа от Linux в пользу другой ОС меня всегда отталкивала. Да и тот эпизодический опыт, когда приходилось что-то делать в macOS, был эмоционально неприятным.

Но появление M1 посеяло во мне зерно сомнений: мой ноутбук больше не был самым крутым и навязчивой мыслью было то, что я отказываю себе в чём-то большем. Это зерно прорастало и проросло: я купил MacBook Air с 16GB ОЗУ и 512GB SSD, с удивлением обнаружив, что он ещё и стоит дешевле моего XPS. Впереди меня ожидали настройка окружения, борьба с Docker, грусть от отсутствия привычного автодополнения в консоли и много чего ещё.

Читать далее
Total votes 106: ↑101 and ↓5+126
Comments382

Атопический дерматит (нейродермит): что сломалось и как лечить

Reading time11 min
Views80K
image
Одно из возможных проявлений атопического дерматита

Знаете, чему учат студентов-медиков, когда они в первый раз попадают на курацию по кожно-венерологическим заболеваниям? Правильно общаться с пациентом и корректно его осматривать. Типичный студент, увидевший кожу с неприглядными корочками или покраснениями, сразу отодвигается на полтора метра и делает круглые глаза. А потом чуть ли не палочкой пытается тыкать в пациента, стараясь не приближаться. Людей это расстраивает, особенно с учётом того, что большинство пациентов там вовсе не болеет чем-то страшным и заразным.

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

  1. Базовая причина связана с генетическими дефектами, которые мы пока не можем чинить, несмотря на все успехи генотерапии.
  2. Есть куча непонятных факторов, которые могут запускать этот процесс.

В итоге можно попытаться загнать заболевание в постоянную ремиссию. Сегодня мы поговорим:

  1. Что это за патология, с которой сталкивается около 20 % людей.
  2. Что ломается в организме у атопиков.
  3. Как это связано с аллергией.
  4. Что лучше мазать на кожу.
  5. Почему антидепрессанты могут сильно помочь.

Под катом будет несколько фотографий повреждённой кожи, но не ужас-ужас, как вы и просили.
Читать дальше →
Total votes 70: ↑65 and ↓5+86
Comments160

Как работает Flutter

Reading time18 min
Views63K


Как Flutter работает на самом деле?


Что такое Widgets, Elements, BuildContext, RenderOject, Bindings?..


Сложность: Новичок


Вступление


В прошлом году (прим: в 2018), когда я начал свое путешествие в сказочный мир Flutter, в Интернете было очень мало информации по сравнению с тем, что есть сегодня. Сейчас, несмотря на то, что уже написано много материалов, лишь небольшая их часть рассказывает о том, как на самом деле работает Flutter.


Что же такое Widgets (виджеты), Elements (элементы), BuildContext? Почему Flutter быстрый? Почему иногда он работает не так, как ожидается? Что такое деревья и зачем они нужны?


В 95% случаев при написании приложения вы будете иметь дело только с виджетами, чтобы что-то отображать на экране или взаимодействовать с ним. Но неужели вы никогда не задумывались, как вся эта магия работает внутри? Как система узнает, когда обновить экран и какие части должны быть обновлены?


Содержание:


Читать дальше →
Total votes 14: ↑13 and ↓1+12
Comments6

Преподавателям на заметку: PVS-Studio для знакомства студентов с инструментами анализа кода

Reading time4 min
Views4.7K

PVS-Studio и обучение

По общению в поддержке и некоторым другим косвенным признакам мы заметили, что среди наших бесплатных пользователей стало много студентов. Причина: анализатор PVS-Studio начал использоваться некоторыми преподавателями в рамках дисциплин, связанных с разработкой программного обеспечения. Нам это очень приятно, и мы решили написать эту небольшую заметку, чтобы привлечь внимание и других преподавателей. Мы рады, что студенты знакомятся с методологией статического анализа кода в целом и инструментом PVS-Studio в частности. Наша команда постарается внести вклад в развитие этой тенденции.
Читать дальше →
Total votes 45: ↑41 and ↓4+37
Comments4

Не очередной язык программирования. Часть 1: Логика предметной области

Reading time31 min
Views49K


В последнее время на рынке появилось огромное количество новых языков программирования: Go, Swift, Rust, Dart, Julia, Kotlin, Hack, Bosque – и это только из числа тех, которые на слуху.
Ценность того, что эти языки привносят в мир программирования, тяжело переоценить, но, как правильно в прошлом году отмечал Y Combinator, говоря про инструменты разработки:
Фреймворки становятся лучше, языки немного умнее, но в основном мы делаем то же самое.
В данной статье будет рассказано о языке, построенном на подходе, принципиально отличающемся от подходов, используемых во всех существующих языках, в том числе вышеперечисленных. По большому счету, этот язык можно считать языком общего назначения, хотя некоторые его возможности и текущая реализация платформы, построенной на нем, все же, наверное, ограничивают его применение немного более узкой областью – разработкой информационных систем.
Читать дальше →
Total votes 53: ↑44 and ↓9+35
Comments431

Стальные ликвидаторы

Reading time9 min
Views28K
В случае природных или техногенных катастроф, для разбора завалов и на крупных пожарах часто используются танки. Переделанные в гражданские версии, со снятым вооружением, они применяются как вездеходы, тягачи, уборочная и грейдерная техника, а также чтобы проникнуть в труднодоступные места в условиях распространения огня или при угрозе обрушения конструкций. Для последней задачи танк использовался и при работах в «Укрытии», возведенном над разрушенным 4-м энергоблоком Чернобыльской АЭС.

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

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


Total votes 88: ↑87 and ↓1+86
Comments24

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

Reading time13 min
Views65K


Принято считать, что ракетостроение — одна из самых романтичных отраслей промышленности. Однако, в годы войны, в немецком ракетостроении был задействован труд не только инженеров-романтиков, но и десятков тысяч узников концлагерей. Они трудились и в штольнях завода в Миттельверке на производстве реактивной техники (было изготовлено 5 946 баллистических ракет Фау-2, которую можно считать “прабабушкой” легендарной Р-7), и в ракетном центре Пенемюнде.

Многие заключенные, не желая мириться со своей участью, саботировали работу и организовывали побег. О самом уникальном случае побега из “колыбели мирового ракетостроения”, организованного группой Девятаева, хочется рассказать сегодня. Если кратко — 10 узников лагеря при полигоне Пенемюнде 8 февраля 1945 года угнали немецкий бомбардировщик He-111 и перелетели на нем через линию фронта. Подробности данного подвига представлены ниже.
Total votes 111: ↑99 and ↓12+87
Comments175

Все, что вам нужно знать об обнаружении изменений в Angular

Reading time8 min
Views88K
Наткнулся на хорошую статью об устройстве Angular'овского механизма обнаружения изменений (change detection). Т.к. тема достаточна важна, но при этом недостаточно глубоко раскрыта даже на англоязычных ресурсах, а найти русскоязычные материалы на эту тему, вообще, не представляется возможным, решил перевести данную статью.
Перевод под катом
Total votes 21: ↑20 and ↓1+19
Comments8

25 полезных шорткатов для Photoshop

Reading time3 min
Views189K
Здравствуй, дорогой хабрадруг! В этой статье приводятся 25 самых полезных сочетаний клавиш (шорткатов) в Photoshop, которые вы можете использовать, для того чтобы ускорить выполнение вашей работы. Некоторые из них редко упоминаются, некоторые применяются довольно часто, а некоторые вообще доступны только в Photoshop CS5. Я надеюсь, что каждый из вас найдет новые и полезные шорткаты в этой статье. Итак, давайте же начнем!


Читать дальше →
Total votes 126: ↑103 and ↓23+80
Comments76

Ричард Фейнман: удовольствие делать открытия

Reading time1 min
Views12K


Первая часть программы Horizon (BBC, 1981) с Ричардом Фейнманом. О красоте, об отце, о названиях и именах, об алгебре, о наблюдениях и униформе. Это интервью во многом пересекается с книгой "Вы, конечно, шутите, мистер Фейнман", поэтому по большей части монолог касается жизни ученого, его взгляде на жизнь и тому, как такой взгляд развился и кто на него повлиял.
Читать дальше →
Total votes 177: ↑170 and ↓7+163
Comments30

Мой опыт реанимации жесткого диска

Reading time3 min
Views378K
Наверное, рано или поздно это случается с каждым — однажды и у меня слетел usb-жесткий диск.
Куда-то сильно торопился и просто выдернул шнурок из гнезда USB в ноутбуке (как это часто бывает).
Прихожу на работу, подключаю HDD, а он пустой…
image
Что делать!? Что делал я — читаем далее.
Читать дальше →
Total votes 52: ↑35 and ↓17+18
Comments84

12 способов не накосячить со вспышкой

Reading time8 min
Views354K
После трёх лет работы со студийным светом я думал, что знаю про накамерную вспышку если не всё, то очень много. Три недели назад я попал в гости к одному особо опытному стробисту, который рассказал и показал столько, что я сразу понял, что надо садиться и делать перепись грабель, а потом тестить, тестить и ещё раз тестить.

Ниже — достаточно известные вещи, которые, однако, вызывали facepalm у тех, кто был вместе со мной или же у меня. В списке грабель вы с некоторой вероятностью можете найти что-нибудь новое. Если хотя бы она фича использования вспышки окажется для вас полезной, то мою задачу можно считать выполненной.
Читать дальше →
Total votes 228: ↑223 and ↓5+218
Comments73

Information

Rating
Does not participate
Location
Минск, Минская обл., Беларусь
Date of birth
Registered
Activity