Намедни изучал ngRX для проекта на Angular. Нужно было получить данные, которые пользователь ввел на другой странице приложения. В изучении темы помогли: Статья Angular/NGRX — ясное и чёткое введение Видео Angular + NGRX — длительность 1 час Также официальная документация https://ngrx.io/guide/store Итоги работы выложил в репозитории: Пример использования NgRx

Для дебага Ionic приложении отлично подходит chrome remote debug tool. Но remote debug не работает для релизной версии, а чтобы IAP полноценно работал, как раз требуется релиз версия. То есть, чтобы IAP заработал, нужно Создать релиз версию(apk) приложения Залить его на бета/альфа/внутренний канал для тестирования в Google Play Console И уже оттуда скачать преобразованный АПК Тогда покупки внутри приложения полноценно заработают. Но, оказывается, есть способ запустить IAP полноценно, а также включить remote debug tool.

angular-form-validation

Я  был удивлен, когда узнал что в Angular нет кастомизации ошибок при валидации формы. То есть, встроенные билдеры форм есть, встроенные валидаторы есть, но вот встроенных текстов ошибок нет. Соответственно менять то нечего. Нужно создавать свои. А чтобы каждый раз не писать захардкоженый вывод ошибок, можно создать шаблон, в котором будет меняться только текст ошибок.

Все больше погружаюсь во фронтенд. Получил порцию новых знаний, а также сертификат на Coursera по Angular. https://coursera.org/share/949158719a0df915680c49a432a0c9d6  

ionic cordova coursera

Ура — немного с запозданием — но все же можно поздравить: закончил курс и получил сертификат по Ionic and Cordova от Coursera. Мои первые шаги на пути к мобильным приложениям 🙂 В честь этого, вводный обзор и впечатления по курсу. Об чем речь? Ionic — фреймворк для разработки гибридных кроссплатформенных приложении, аля Xamarin. Пишите на одном языке — получаете приложение на Android, iOS, Windows. Если для Xamarin используется С#, то для Ionic всеми знакомый HTML, JS. Js не ванильный, а Angular + Typescript.

Хочу поделиться одним видео, в котором хорошо объясняется «Что такое Observable». Автор пошагово, с нуля создает свой прототип Observable. По мере роста кода и функции, видно какие цели может решать Observable. К сожалению, название видео очень плохо передает его суть, точнее очень плохо индексируется и ищется в поисковике. Само видео нашел случайно в комментариях к одному из видео, в которых автор, обычно, пересказывает официальную документацию. Поэтому, было решено оставить у себя в заметках, а также помочь в продвижении этого выступления. Observable, точнее библиотека RxJs очень плотно интегрирована в Angular. Так что если будете смотреть код Angular точно столкнетесь c Observable. Кажется, что все запросы в Angular, которые могут вернуть ответ …

How to Create a Bootable Windows 10 USB in Linux

Линукс как всегда удивляет своей «дружелюбностью». Если в винде, чтобы создать загрузочный диск, нужно просто скачать программу Rufus и запустить ее, то Линуксе пришлось потратить несколько часов на чтение и поиск, а если учесть тестирование, то целых два дня, чтобы найти верный способ. Сналала о способах, которые НЕ работают. Все действия выполнялось на Linux Mint Cinnamon. Один индуский друг на сайте https://itsfoss.com/bootable-windows-usb-linux/ советует программу Disks для создания загруочной флешки. Так вот создания загруочной флешки Windows 10 через встроенную программу Disks НЕ работает. Следующий способ через встроенную программу Usb Image Creator. Вердикт — Не работает. Вызвать эту программу можно выбрав iso образ -> нажть на ПКМ -> make bootable usb Далее, …

Самым популярным инструментом для анализа кода PHP является Codesniffer. Установить его можно как глобально, так и локально. Через композер выглядит это так:

Запуск через:

Настройка Codesniffer это отдельная тема, сейчас пойдет речь про авто запуск этой команды. Чтобы не запускать каждый раз перед коммитом или пушем, можно привязать запуск на git webhooks. Все хуки лежат в папке .git\hooks. Возьмем к примеру файл pre-commit.sample, событие вызывается до коммита. Этот хук легче всего тестировать локально, так что и другие скрипты, необходимые для других хуков, можно потренировать «на кошках» Для начала нужно переименовать или создать новый файл с именем pre-commit. Вставить туда вот такой код

Подведение итогов года 2019

Под конец года принято писать про итоги и произошедшие события за год. Что ж, даже несмотря на то, что все эти «топы и итоги» окутаны хайповостью и кликбейстностью, опутаны бородатостью и пахнут вермутом бьянко, и моя натура, относящаяся с критическим мышлением к таким вещам, не хотела вливаться в этот поток. Но пульсирующая мысль, корнем, которого было где то невпопад прочитанная: «Что не записано, того не было», не давало покоя. Кажется, это высказывания великого римского историка. Или высказывание моей одноклассницы, постоянно ведшая дневник и писавшая любую мелочь туда. Хотя… больше похоже на девиз бухгалтеров.

Переписал проект Gitlab Webhooks + Redmine, интеграция с помощью вебхуков на Lumen. Основная идея — посмотреть отличия между проектом на чистом PHP и проектом на известном фреймворке. Из побочных эффектов — возможность использования Dependency Injection в тестах. С помощью Laravel Service Container and PHPUnit сделать это легко. Исходный код лежит в репозиторий: https://github.com/Carsak/GitlabWebhookExample