Сила дженериков в Swift. Часть 2

Автор: admin от 16-08-2019, 01:30, посмотрело: 15

Добрый день, друзья. Специально для студентов курса «iOS Разработчик. Продвинутый курс» мы подготовили перевод второй части статьи «Сила дженериков в Swift».



Сила дженериков в Swift. Часть 2




Связанные типы, условия where, сабскрипты и прочее…



В статье «Сила дженериков в Swift. Часть 1» описывались generic-функции, generic-типы и ограничения типа. Если вы новичок, я бы рекомендовала вам для лучшего понимания сначала прочитать первую часть.



При определении протокола иногда полезно объявить один или несколько связанных типов как часть определения. Связанный тип задает имя-заглушку для типа, который используется в качестве части протокола. Фактический тип, используемый для этого связанного типа не будет указан, пока протокол не будет использован. Связанные типы объявляются с помощью ключевого слова associatedtype.

Категория: Game Development, iOS

 

Инструмент для управления проектами на базе Google Sheets

Автор: admin от 15-08-2019, 17:40, посмотрело: 558

Некоторое время назад передо мной встал выбор инструмента для управления небольшими проектами по SCRUM-методологии. У меня был довольно большой опыт использования различных инструментов включая Jira, Asana, Trello и проч., но ни один из них не подходил в полной мере для моего проекта: какой-то был чересчур монструозен, а какому-то недоставало важных для меня фич. В итоге пришлось изобретать инструмент самому, на базе Google Sheets.



Инструмент для управления проектами на базе Google Sheets


Требования, предъявляемые мною к инструменту, были таковы:

Категория: Google

 

Выпуск Rust 1.37.0: Profile-Guided Optimization, неименованные константы и cargo vendor

Автор: admin от 15-08-2019, 17:40, посмотрело: 560

Представляем вашему вниманию перевод публикации о новой версии всеми любимого языка программирования Rust.



Введение



Команда разработчиков Rust рада сообщить о выпуске новой версии, 1.37.0. Rust — это язык программирования, позволяющий каждому создавать надёжное и эффективное программное обеспечение.



Если вы установили предыдущую версию Rust средствами rustup, то для обновления до версии 1.37.0 вам достаточно выполнить следующую команду:



$ rustup update stable


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

Категория: Программирование, Системное администрирование

 

Доступ к свойствам внутри поля Jsonb для Npgsql

Автор: admin от 15-08-2019, 17:30, посмотрело: 557

PostgreSQL имеет тип данных Jsonb, который позволяет добавлять к стандартной реляционной модели дополнительные свойства с возможностью поиска по ним.



EntityFramework Core с расширением Npgsql умеет вытягивать данные поля в тип System.String



Однако для фильтрации по Json свойствам через EF на уровне запросов приходится использовать чистый SQL, что не очень то удобно, так как нужно лезть в маппинг (если он не автоматический), искать названия полей, соответствующих свойствам моделей, поддерживать это именование. Пропадает гибкость, которую нам дает ORM.



Если вас это угнетает, так же как и меня, добро пожаловать под кат.



В конце статьи имеется ссылка на исходники!

Категория: Программирование

 

Что мне не нравится в Windows 10

Автор: admin от 15-08-2019, 16:55, посмотрело: 551

Встретил тут очередной список «10 причин, которые сподвигли перейти с Windows 10 на Linux» и решил составить свой список того, что мне не нравится в Windows 10 — ОС, которой я пользуюсь сегодня. Переходить на Linux я не собираюсь в обозримом будущем, но это совсем не значит, что я доволен всем, что меняется в операционной системе.



Сразу отвечу на вопрос «а почему бы не продолжать использовать Windows 7, если что-то не нравится в 10?»



Моя работа связана с технической поддержкой, в том числе и компьютеров с десятками. Потому выгодней жить на актуальной версии ОС, а не отмазываться от заданий под соусом «я этой вашей десяткой не пользуюсь». На семёрке я жил, я её помню-знаю, с тех времён там ничего не изменилось. А вот десятка постоянно меняется, чуть задержишься с обновлениями — и настройки какие-то переползут в другое место, логика поведения изменится и т.п. Потому, чтобы не отстать от жизни, в повседневном использовании у меня именно Windows 10.



Что мне не нравится в Windows 10


А теперь расскажу, что я в ней не люблю. Поскольку я не только пользователь, но и админ, то нелюбовь будет с двух точек зрения. Кто сам не пользуется, а только админит — тот не встретит половину вещей, а простой пользователь не встретит вторую.

Категория: Windows

 

Оттенки значений в английском языке: как использовать глаголы Advise, Recommend, Suggest

Автор: admin от 15-08-2019, 16:55, посмотрело: 556

Оттенки значений в английском языке: как использовать глаголы Advise, Recommend, Suggest




Английский язык часто воспринимается как нечто не столь сложное, как некоторые другие языки – взять тот же немецкий. Но на самом деле в нем есть достаточное количество трудностей и тонких моментов («Пишется Ливерпуль, а читается Манчестер» ).



Один из них, вызывающий лично у меня большие трудности – это корректное использование близких по значению слов. Например, разобраться в том, когда использовать глаголы advise, recommend и suggest оказалось не так-то просто. Я нашла интересный пост, в котором разобран этот вопрос, и подготовила его адаптированный перевод.

Категория: Программирование

 

Большой старый сюрприз от HP

Автор: admin от 15-08-2019, 16:55, посмотрело: 554

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



Выбор пал на ноутбук HP c 14'' экраном, поддерживающим расширение 1920x1080, что и явилось решающим критерием для выбора. Железо вроде хорошее, но вот софт от HP заставляет задумываться, а надо ли оно было.

Категория: Программирование

 

Обзор открытых решений для исправления опечаток

Автор: admin от 15-08-2019, 16:55, посмотрело: 550

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



Обзор открытых решений для исправления опечаток




Задача исправления опечаток, на первый взгляд, кажется довольно несложной. Но если отталкиваться от разнообразия ошибок, реализация решения может оказаться трудной. В целом, исправление опечаток разделяется на контекстно-независимое и контекстно-зависимое (где учитывается словарное окружение). В первом случае ошибки исправляются для каждого слова в отдельности, во втором – с учетом контекста (например, для фразы «она пошле домой» в контекстно-независимом случае исправление происходит для каждого слова в отдельности, где мы можем получить «она пошел домой», а во втором случае правильное исправление выдаст «она пошла домой»).

Категория: Linux

 

Упрощаем миграцию с OpenShift 3 на OpenShift 4

Автор: admin от 15-08-2019, 16:55, посмотрело: 571

Итак, состоялся официальный запуск платформы Red Hat OpenShift 4. Сегодня мы расскажем, как перейти на нее с OpenShift Container Platform 3 максимально быстро и просто.



Упрощаем миграцию с OpenShift 3 на OpenShift 4



В рамках этой статьи нас прежде всего интересуют новые кластеры OpenShift 4, использующие возможности умной и неизменной (immutable – одинаковой для всех сред развертывания) инфраструктуры на основе RHEL CoreOS и средств автоматизации. Ниже мы покажем, как перейти на OpenShift 4 без лишних проблем.
: Упрощаем миграцию с OpenShift 3 на OpenShift 4

Категория: Linux

 

Дзен изолированных компонентов в Android-архитектуре

Автор: admin от 15-08-2019, 16:25, посмотрело: 562

Несколько лет назад мы в Badoo начали использовать MVI-подход к Android-разработке. Он был призван упростить сложную кодовую базу и избежать проблемы некорректных состояний: в простых сценариях это легко, но чем сложнее система, тем сложнее поддерживать её в корректном виде и тем проще пропустить баг. 



В Badoo все приложения асинхронны — не только из-за обширного функционала, доступного пользователю через UI, но и из-за возможности односторонней отправки данных сервером. При использовании старого подхода в нашем чат-модуле нам попалось несколько странных трудновоспроизводимых багов, на устранение которых пришлось потратить довольно много времени.



Дзен изолированных компонентов в Android-архитектуре


Наш коллега Zsolt Kocsi (Medium, Twitter) из лондонского офиса рассказал, каким образом с помощью MVI мы строим независимые компоненты, которые легко переиспользовать, какие преимущества мы получаем и с какими недостатками нам пришлось столкнуться при использовании этого подхода.

Категория: Android