Flutter в режиме live-code. Потому что прёт! Маркетплейс на Hasura и Firebase!

demo

How to Start

$ flutter packages pub run build_runner build --delete-conflicting-outputs

for VSCode Apollo GraphQL

$ npm install -g apollo

create ./apollo.config.js

module.exports = {
  client: {
    includes: ['./lib/**/*.dart'],
    service: {
      name: 'minsk8',
      url: 'https://minsk8.herokuapp.com/v1/graphql',
      // optional headers
      headers: {
        'x-hasura-admin-secret': '<secret>',
        'x-hasura-role': 'user',
      },
      // optional disable SSL validation check
      skipSSLValidation: true,
      // alternative way
      // localSchemaFile: './schema.json',
    },
  },
}

how to download schema.json for localSchemaFile

$ apollo schema:download --endpoint https://minsk8.herokuapp.com/v1/graphql --header 'X-Hasura-Admin-Secret: <secret>' --header 'X-Hasura-Role: user'
cd firebase
firebase functions:config:set someservice.key="THE API KEY" someservice.id="THE CLIENT ID"
firebase deploy

VSCode Settings

Чтобы выполнить импорт настроек редактора, нужно установить Settings Sync, потом [Shift]+[Alt]+[D] и ввести ключ: 5166716632eec0d75a90942631a1360e

Визуализация изменений в git

gource \
--path ./ \
--seconds-per-day 0.15 \
--title "Minsk8" \
-1920x1080 \
--file-idle-time 0 \
--auto-skip-seconds 0.75 \
--multi-sampling \
--stop-at-end \
--highlight-users \
--hide filenames,mouse,progress \
--max-files 0 \
--background-colour 000000 \
--disable-bloom \
--font-size 24 \
--output-ppm-stream - \
--output-framerate 30 \
-o - \
| ffmpeg \
-y \
-r 60 \
-f image2pipe \
-vcodec ppm \
-i - \
-vcodec libx264 \
-preset ultrafast \
-pix_fmt yuv420p \
-crf 1 \
-threads 0 \
-bf 0 \
./output.mp4

Why?

В редакцию пришло письмо, как говорится.

"Извиняюсь что влезаю так поздно. Но хотел узнать, вы не рассматривали вариант работы над проектом не в одиночку? Сам около 10 лет в разработке и уже понимаю что выгорать стал, нет драйва как раньше, по факту все одно и тоже. Но для меня хорошим фактором продолжать работать является работа в команде, когда все друг друга подталкивают делать что-то, главное найти активных и близких по духу людей. К тому же, есть положительный опыт разработки в команде и запуске своего проекта, в данный момент благодаря этому живу на пассивном доходе и для меня это скорее как часть жизни а не работа. Для себя понял что одному проект тащить тяжело, слишком распыляешься и в результате нигде не успеваешь."

Это удивительно, как неожиданно возвращаются посылаемые в космос сигналы.

После кризиса среднего возраста, с удвоенной силой стремишься обрести бессмертие. Пирамида Маслова, будь она неладна. Я в разработке уже четверть века. Выгорал несколько раз от полугода до трех лет. Но возвращался обратно. Это призвание или крест.

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

И я придумал рецепт - это бой с тенью. Мой спарринг-партнер - трансляции на Ютубе. Записываю процесс с самого начала на камеру. Как я учил новый язык, устанавливал окружение, проектировал схему данных, формулировал задачи, проводил исследования, разрабатывал функционал. Гы-гы, уже 250 подписчиков. Были жалобы, что много воды. Не понимают, что я это делаю не на публику, а для себя.

Если MVP не рождается за 3 месяца, то энтузиазм угасает. Когда я понял, что не успеваю, решил отвлечься на трейдинг. Ох, лучше бы уехал отдыхать. С другой стороны, неудачи прибавляют энергии. Только надо заставить себя закрыть убыток, саморазрушение парализует. У меня уже истерики, чего не было очень давно.

Я убежден, что если "Just For Fun", то может родиться что-то стоящее. Когда выращиваешь с любовью и не обременяя обязательствами. Какой может быть тираж и мультипликатор успешного IT-продукта - это не надо долго объяснять, есть куда тыкать пальцем для примера. Сейчас задача минимум - запустить. А дальше уже что вырастет, то вырастет. Как минимум - ещё одна галочка в портфолио. Пускай напишут на моей могильной плите: "он пытался". :)

How to get YouTube-playlist

get source data

convert 1

import 'dart:convert';

final sourceData = {}; // copy-paste here

main() async {
  final items = sourceData['items'] as List;
  final result = items.map(
    (item) {
      final snippet = item['snippet'];
      return {
        'publishedAt': snippet['publishedAt'],
        'title': snippet['title'],
        'description': snippet['description'],
        'videoId': snippet['resourceId']['videoId']
      };
    },
  ).toList();
  print(jsonEncode(result));
}

convert 2

import 'dart:html';
import 'dart:convert';

main() async {
  final data = await HttpRequest.getString('https://raw.githubusercontent.com/comerc/minsk8/master/playlist.json');
  final list = (jsonDecode(data) as List).cast<Map<String, dynamic>>();
  var result = '';
  for (final item in list) {
    final title = item['title'];
    final description = item['description'].replaceAll('\n', ' ');
    final videoId = item['videoId'];
    result += '- [`$title`](https://www.youtube.com/watch?v=$videoId)\n';
    if (description != '') {
      result += '\t`$description`\n';
    }
  }
  print(result);
}

playlist

Training

Онлайн-курсы по Flutter, групповой интерактив. 100 часов, 3 месяца, 3 раза в неделю: вторник, четверг, воскресенье. Время занятий с 7 до 10 вечера (GMT+3). Начало занятий на этой неделе. Из чего состоит курс? Тренировки до изнеможения. Сначала теория. Потом практика. Будем делать сайт знакомств для котиков. Полный цикл разработки. От базового функционала и дальше, сколько успеем. Группа в телеге.

Head Hunter

❓💡ИЛОН МАСК ЗАДАЕТ ЭТОТ ВОПРОС В КАЖДОМ ИНТЕРВЬЮ, ЧТОБЫ ОПРЕДЕЛИТЬ ЛЖЕЦА

📍Любой успешный генеральный директор скажет вам, что люди, которых вы нанимаете, могут создать или разрушить вашу компанию. Итак, какие главные черты характера должны искать менеджеры по найму и как они их распознают в кандидате?

🔘 По словам Илона Маска, дело не в том, в какую школу вы ходили или какой у вас уровень образования. “Нет никакой необходимости даже иметь высшее образование или даже среднюю школу”, - сказал генеральный директор Tesla $TSLA в интервью Auto Bild в 2014 году.

◼️ Вместо этого Маск ищет “доказательства исключительных способностей”, когда дело доходит до найма. “Если есть у кандидата уже есть послужной список исключительных достижений, то вполне вероятно, что это будет продолжаться и в будущем”, - сказал он.

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

✅ К счастью, Маск раскрыл свое решение этой проблемы на Всемирном правительственном саммите в 2017 году. Он задает каждому кандидату один и тот же вопрос: “Расскажите мне о некоторых наиболее сложных проблемах, над которыми вы работали, и о том, как вы их решали.” Потому что “люди, которые действительно решили проблему, точно знают, как они ее решили”, - сказал он. - "Они знают и могут описать мелкие детали.”

🔘 В конце концов, никто не хочет нанимать человека, который только болтает и ничего не делает.

Hobby

Contacts

Support Me

😺

FLUTTER-APPS DART FIREBASE FLUTTER-APP HASURA-GRAPHQL LIVE-STREAMING PACKAGES
SHARE: