Рубрика «Программирование» - 268

Как и предыдущая, эта заметка представляет собой обзор статей и комментариев к ним здесь, на Хабре, сгруппированный по нескольким темам.

Законы робототехники Азимова

Пожалуй, самая смешная, но, как ни странно, до сих пор широко обсуждаемая тема. Собственно, говорить тут просто не о чем: разве кому-то не ясно, что если ИИ хоть немного станет вылезать из пелёнок (и даже раньше — уже сейчас!), на него тут же наложат лапу военные и всякая там «госбезопасность»? И они будут учить ИИ именно эффективно убивать, не заморачиваясь всякой ерундой на тему «псевдоэтики». Разве не ясно, что эти «законы» в принципе не работают и работать не могут, о чём прекрасно знал и сам Азимов? Разве не ясно, что главная угроза со стороны ИИ как раз связана с контролем со стороны человека? И что, мы так и будем верить в сказки, вопрошая: «Дадим ли мы военным роботам лицензию на убийство»? А разве нас кто-то спрашивает? Или: «Крупнейшие ИТ-компании не дадут ИИ вырваться из-под контроля человека». А разве их кто-то спрашивает? Или: «Известные во всём мире разработчики ИИ договорились не создавать умное оружие». Тупое будут создавать? Или: «Эксперт ООН призвал мировое сообщество притормозить создание боевых роботов с искусственным интеллектом». А разве крупные страны, способные создать таких роботов, хоть раз считались с мнением ООН? Так что давайте прекратим обсуждать очевидные глупости — это даже не детский сад, это младшая ясельная группа.

Тест Тьюринга

Читать полностью »

В каких случаях стоит использовать Django (а в каких не стоит) - 1
Давайте поможем разработчикам разобраться, подходит ли фреймворк Django для их следующего проекта. Вполне вероятно — подходит.

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

Прежде чем приступать к новому проекту, следует оценить, какой язык или фреймворк лучше всего подойдет вам для достижения желаемого результата. Что для вас наиболее важно? Безопасность, скорость разработки, масштабируемость, универсальность, поддержка?
Лучше принять информированное решение перед тем как приступать к работе, чем потом раскаиваться в поспешном (или, хуже того, навешивать на проект костыли в процессе реализации – из-за того, что заранее не озаботились его поддержкой).

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

Понимаю, это громкое заявление. Позвольте мне его обосновать.
Читать полностью »

Не так давно на Хабре была статья про графический калькулятор TI-83, и,
поскольку я являюсь обладателем TI-89 Titanium — калькулятором следующего поколения от Texas Instruments, под катом я решил рассказать про него, и показать, как для этого калькулятора можно создавать свои собственные программы на С.

Читать полностью »

Парадигма CQRS в том или ином виде предполагает, что вызовы Query не будут менять состояние приложения. То есть многократные вызовы одной и той же query, в рамках одного запроса, будут иметь один и тот же результат.

Пусть все интерфейсы, использующиеся в рамках запроса будут иметь тип IQuery или IAsyncQuery:

public interface IQuery<TIn, TOut>
{
   TOut Query(TIn input);
}

public interface IAsyncQuery<TIn, TOut>: IQuery<TIn, Task<TOut>
{
}

Читать полностью »

Предыстория

За последние пару лет я поучаствовал в немалом количестве собеседований. На каждом из них я спрашивал соискателей о принципе единственной ответственности(далее SRP). И большинство людей о принципе ничего не знают. И даже из тех, кто мог зачитать определение, почти никто не мог сказать как они используют этот принцип в своей работе. Не могли сказать, как SRP влияет на код, который они пишут или на ревью кода коллег. Некоторые из них также имели заблуждение, что SRP, как и весь SOLID, имеет отношение только к объектно ориентированному программированию. Также, зачастую люди не могли определить явные случаи нарушения этого принципа, просто потому что код был написан в стиле, рекомендованном известным фреймворком.
Redux — яркий пример фреймворка, гайдлайн которого нарушает SRP.
Читать полностью »

Nil не всегда nil

"Что? Что вообще здесь написано?" спросите вы. Сейчас все разложу.

Когда начинал изучать язык — не думал что зайду в этот узкий случай. Это также не рационально как и изменять итерируемую коллекцию.

Читать полностью »

Каждый в IT-индустрии знает, насколько сложно оценить срок выполнения проекта. Трудно объективно оценить, сколько времени займёт решение трудной задачи. Одна из моих любимых теорий заключается в том, что здесь имеет место просто статистический артефакт.

Предположим, вы оцениваете проект в 1 неделю. Предположим, есть три одинаково вероятных результата: либо он займёт 1/2 недели, либо 1 неделю, либо 2 недели. Медианный результат фактически такой же, как и оценка: 1 неделя, но среднее значение (aka average, aka expected value) составляет 7/6 = 1,17 недель. Оценка фактически откалибрована (беспристрастна) для медианы (которая равна 1), но не для среднего.
Читать полностью »

Хотите повстречаться с Джоном Гэллоуэем (исполнительным директором .NET Foundation), Павлом Йосифовичем (автором легендарной «Windows Internals» и новых курсов на Pluralsight)? Или может быть, с Алексом Тиссеном — 12-кратным MVP в категории Visual Studio? Или пройти тренинг у Конрада Кокоса (автора «Pro .NET Memory Management»)? Теперь у вас есть такая возможность.

15-16 мая в Санкт-Петербурге состоится крупнейшая конференция для .NET-разработчиков — DotNext 2019 Piter. Под катом будет структурный обзор программы докладов и пара слов о тренинге.

Однажды Дуглас Крокфорд написал книгу «JavaScript: The Good Parts» и этим положил начало множеству трудов, посвященных тому, чтобы подсветить самое лучшее во множестве технологий. В этом хабрапосте мы поговорим о четырёх лучших разделах знания об экосистеме .NET, актуальных в 2019 году.

.NET: The Good Parts — от CLR до сообщества - 1

Читать полностью »

image

Впервые на Positive Hack Days в рамках кибербитвы The Standoff пройдет хакатон для разработчиков. Действие развернется в мегаполисе, в котором массово внедрены самые современные цифровые технологии. Условия максимально приближены к реальности. У атакующих полная свобода действий, главное не нарушать логику работы игрового полигона, а защитники должны обеспечить безопасность города. Задача команд разработчиков развернуть и обновлять заранее написанные приложения, которые атакующие не преминут проверить на прочность. Соревнование состоится 21 и 22 мая, во время проведения The Standoff.

Хакатон — отличный шанс для разработчиков провести профессиональный пентест своего приложения, посмотреть вживую, как действуют хакеры, и прямо на ходу доработать свой код с точки зрения информационной безопасности. Для хакатона принимаются только некоммерческие проекты, представленные авторами. Всего к соревнованию будут допущены 10 проектов, которые организаторы выберут по итогам голосования на сайте хакатона.
Читать полностью »

Друзья, в преддверии майских праздников мы решили не заваливать вас сложными техническими статьями, поэтому нашли довольно интересный, а главное, легкий в прочтении материал, переводом которого с радостью делимся с вами. Данный материал мы хотим приурочить к запуску курса «Web-разработчик на Python».

С оригиналом можно ознакомиться тут.

Представляем Tartiflette: реализацию GraphQL с открытым исходным кодом для Python 3.6+ - 1

Приобретение Vivendi dailymotion три года назад оказалось поворотным моментов для нашей организации. Это позволило переосмыслить вектор нашей работы, переосмыслить саму нашу работу от начала до конца. Мы использовали представившуюся возможность для оценки dailymotion в целом, переосмысления нашей инфраструктуры и, что более важно, архитектуры наших продуктов.

В конце концов, проведенный самоанализ подтвердил то, что мы уже знали: мы хотели территориально распространять нашу платформу и разрабатывать API-интерфейсы, мобильные и ТВ-приложения. Это ознаменовало отказ от нынешней монолитной структуры и принятие API-ориентированного подхода. В этой статье описан путь, по которому мы шли.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js