В этом треде я буду потихоньку собирать информацию по изучению Flutter и Dart
Первое, что я сделал, это прошелся по Getting Started из документации. Установка SDK, Android Studio с плагинами для Flutter и Dart, настройка эмулятора и всего прочего: flutter.dev/docs/get-start…
В целом, начало мне очень понравилось.
flutter doctor меня особенно порадовал
Теперь попробую собрать и запустить в эмуляторе стандартное приложение, чтоб удостовериться, что все работает так, как должно flutter.dev/docs/get-start…
Первая проблема вскрылась в совсем неожиданном виде - gradle assembleDebug виснет наглухо. Пошел обновлять gradle
Обновление gradle не дало никакого эффекта. Я посмотрел на эту разросшуюся кэшами папку, и для начала, снес ее к херам - с 2020 ни разу не использовалась, но волокла 10 версий
Потом я увидел, что gradlew стал выдавать ошибку. Это была неплохая зацепка. Оказалось, что у меня в системе стандратной джавой была установлена Java 16, с которой gradle несовместим. Интересно, откуда взялась 16, если у меня jdk 8 и 11 стоят, но мало ли, из идеи просочилась
Почистил я свой Path (а он выглядел как помойка за 3 года без чистки) и удостоверился, что у меня стоит Java 8 по дефолту. Запустил gradle и о чудо, заработало.
Приложение на Flutter запустилось, возвращаюсь, спустя час возни с инструментами, к цели
Моя цель сегодня – разобрать и объяснить суть недетерминизма простыми словами. За этим странным словом скрывается очень интересный мир. Поехали!
Речь пойдет сначала про детерминизм, дальше про недетерминизм, а потом про разные вариации конечных автоматов и машин Тьюринга.
И о том, как со всем этим работать, зачем оно нам вообще нужно, и что это нам всем предвещает.
Итак, детерминизм.
Предлагаю сначала дать очень простое определение этому сташному слову. На самом деле, детерминизм наш хороший друг (а недетринизм - тот еще мудак для понимания)
Я расскажу очень простым языком о том, как устроены Тьюринг Машины, и зачем они вообще нужны!
Уверен, что вы уже где-то слышали про Алана Тьюринга, его заслуги и личную жизнь, и видели упоминания каких-то странных машин Тьюринга, но никогда особо не вникали в тему
Когда я впервые с этим столкнулся, и начал копать интернет, у меня разболелась голова. Какие-то ленты, какие-то устройства, очень много абстракций каких-то, всё странно и ничего не понятно. Это реальная машина? Её кто-то построил? Зачем она вообще?
Я набирал себе предметы на семестр. Никак не мог найти себе ещё один "маленький" предмет (на 3 ECTS). Микропроцессоры, рандомизированные алгоритмы – неплохие компромиссы, но глаза не горели.
И тут я впервые увидел это:
Introduction to Bioinformatics for Computer Scientists
Целый предмет про молекулярную биологию и анализ генома, с практикой по написанию и оптимизации алгоритмов для секвенирования ДНК, построению молекулярных деревьев и популяционной генетике на С++
Я постараюсь рассказать о конечных автоматах так, чтоб и ребёнку стало понятно!
Конечные автоматы – они же Finite-state machines – одна из самых базовых и простых концепций Computer Science. Чтоб разобраться в ней, не нужно вообще никаких специальных знаний – достаточно знать буквы латинского алфавита (хотя бы парочку) и несколько цифр
Мотивацию, лирику и несколько уточнений оставим на конец треда. А сейчас – ближе к телу!
Мы составляли его с товарищами в сессию, потому что материалы профессора были...довольно низкого качества, так сказать
Этот курс предлагается для студентов Computer Science, и параллельно для тех, кто делает MBA.
В этом конспекте находятся Summaries по всем темам, а так же 12 блоков досконально разобранных теоретических вопросов.
Все материалы на английском языке
Много лет назад один профессор показал нам отличный метод умножения матриц, и я решил о нём рассказать
В процессе учебы мне приходилось вручную умножать тысячи матриц, разной размерности и сложности. Классический перебор "строчка на столбик" имеет колоссальную когнитивную нагрузку, а поиск ошибки в нем – зачастую провальное мероприятие
Итак, коротко рассмотрим классический метод на умножении двух квадратных матриц 3х3