Переезд блога

Я почти пол года не писал в блог. Давно пора это исправить. После небольшого копания в коде я решил изменить свой блог и начать работу с новой платформой. Мне нравится внешний вид блога, но крайне не устраивает его техническая часть. Первая версия была реализована в виде велосипеда на .net framework. Затем, чуть больше года назад была обновлена до .net core. И все бы хорошо, если бы. В последнее время мне не нравится направление, куда двигается microsoft и платформа .

Как мы делали приложение с crash-free 99.5%

Как мы делали приложение с crash-free 99.5% Обеспечение качества любого приложения является одной из важных причин его успеха. Каждому уважающему себя разработчику хочется, чтобы его приложение работало стабильно, без багов и ни в коем случае не падало. Мы будем рассматривать приложение Sweetmeet. Это продукт для онлайн знакомств, разработанный в компании Фотострана. Основные возможности в приложении – смахивание карточек, профиль пользователя, чаты. Проект разрабатывался и поддерживался в течение 2,5 лет. Немного о том, из чего состоит приложение: - на текущий момент проект содержит 72 000 строк кода.

Установка и запуск .net core на ubuntu 16.04

Установка и запуск .net core на ubuntu 16.04 Для начала ставим все обновления sudo apt-get update # Fetches the list of available updates sudo apt-get upgrade # Strictly upgrades the current packages sudo apt-get dist-upgrade # Installs updates (new ones) sudo reboot Копируем локальный ssh ключ на сервере ssh-copy-id -i ~/.ssh/id_rsa.pub {username}@{remotePublicIPAddress} Проверяем, что он успешно добавился cat .ssh/authorized_keys Редактируем настройки ssh, запрещаем авторизацию по паролю sudo nano /etc/ssh/sshd_config Port XX — Порт, желательно сменить. По умолчанию 22.

Настройка SSL Let's Encrypt в Nginx на Ubuntu

Настройка SSL Let's Encrypt в Nginx на Ubuntu Файлы импорта Создами несколько файлов для уменьшия копипасты. Первый файл нужен для проверки letencrypt домена. Создаем файл /etc/nginx/snippets/letsencrypt.conf содержимым location ^~ /.well-known/acme-challenge/ { default_type "text/plain"; root /var/www/letsencrypt; } И файл общих настроек для ssl /etc/nginx/snippets/ssl.conf ssl_session_timeout 1d; ssl_session_cache shared:SSL:50m; ssl_session_tickets off; ssl_protocols TLSv1.2; ssl_ciphers EECDH+AESGCM:EECDH+AES; ssl_ecdh_curve secp384r1; ssl_prefer_server_ciphers on; ssl_stapling on; ssl_stapling_verify on; add_header Strict-Transport-Security "max-age=15768000; includeSubdomains; preload"; add_header X-Frame-Options DENY; add_header X-Content-Type-Options nosniff; Создаем директорию, необходимую для работы letsencrypt

Настройка Web Dav в nginx

Настройка Web Dav в nginx Настройка Web Dav в nginx Очень удобно иметь скриншоты на своем домене. Я использую Monosnap в качестве скриншотера, в дополнение к настройке web dav в windows теперь все хранится в Ubuntu. Очевидно, что ftp уже изжил себя в качестве протокола для сохранени и отдачи скриншотов. Оказалось, что настроить webdav в nginx можно из коробки. Для этого привязываем домен (в моем случае это поддомен основного домена). Создаем каталог для будущего сервера

Почему следует выбрать Kotlin для следующего проекта на Android

Почему следует выбрать Kotlin для следующего проекта на Android Почему может возникнуть такой вопрос? На сегодня можно было разрабатывать приложения для андроида на следующих технологиях: Стандартная Java. Это родной язык для всех приложений на андроиде Xamain. На Xamarin можно разрабатывать приложения на C# для iOS, Android и Windows Phone. PhoneGap и другие HTML аналоги. Сюда я пока отнесу Progressive Web App, представленный гуглом годом ранее. Сюда, потому что нет полноценной поддержки на iOS, да и по большому счету технология еще не Production Ready Можно прочитать заметку о том как выбрать платформу разработки для мобильного приложения.

Почему вам следует завести блог?

Почему вам следует завести блог? В этой записи я расскажу что вдохновляет меня вести блог. Для себя Когда я пишу о чем-либо я верифицирую информацию. Еще раз залезу в документацию, чтобы уточнить правда это или нет. Во-первых это проверка информации, во-вторых каждый раз узнаешь что-то новое. Это схоже с тем, что решая в сотый раз похожую задачу полезно гуглить. Написание записей структурирует мысли. Позволяет взглянуть на проблему с другой стороны. Улучшает способность выражать мысли через письмо и говорить более согласованно.

Storyboard или интерфейс из кода?

Storyboard или интерфейс из кода? Довольно продолжительное время я был адептом исключительно Storyboard и презирал использование кода в качестве основного способа построения интерфейса. Все изменилось. Для чего может понадобиться построение интерфейса из кода, как основной способ? Начать нужно с того, как был выстроен процесс работы со Storyboard. Все экране делились на секции (Регистрация, Профиль, Новости и пр) все это относится к разным секциям. Каждая секция реализуется в своем Storyboard, чтобы не пихать все контроллеры в один.

Логгер Serilog для Telegram

Все логирование в .Net core проектах я делаю используя логгер Serilog. Очень удобно получать оперативную информацию сразу в телеграм. Например, комментарии этого блога приходят мне сразу в телеграм. Отвечать на них я правда еще не научил бота =) Вся настройка заключается в этом коде: var log = new LoggerConfiguration() .MinimumLevel.Verbose() .WriteTo.Telegram("000000:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "000000") .CreateLogger(); log.Information("This is an information message!"); Чтобы создать бота нужно написать Bot Father. После создания необходимо добавить бота в контакты и выполнить команду /start.

Куда движется мобильная разработка в 2017

Количество пользователей смартфонов ежегодно растет. Каждый год появляются все более продвинутые приложения. Интересно, куда движется отрасль разработки мобильных приложений в целом. Попробуем проанализировать и разобраться. С чего все начиналось Телефоны в том виде что мы их помним появились в конце 20-го века (в 73-м году Motorola). В то время не было магазинов приложений и телефон выполнял единственную функцию - звонить. Позднее появились электронные записные книжки, карманные персональные компьютеры (КПК), Palm и другие.