Вред макросов для C++ кода

Автор: admin от 20-03-2019, 20:25, посмотрело: 26

Вред макросов для C++ кода


Язык C++ открывает обширные возможности для того, чтобы обходиться без макросов. Так давайте попробуем использовать макросы как можно реже!



Сразу оговорюсь, что я не являюсь фанатиком и не призываю отказываться от макросов из идеалистических соображений. Например, когда речь заходит о ручной генерации однотипного кода, я могу признать пользу от макросов и смириться с ними. Например, я спокойно отношусь к макросам в старых программах, написанных с использованием MFC. Нет смысла воевать с чем-то вроде этого:

code_0

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



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

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

 

Простейший JSON RESTful API на Эликсир

Автор: admin от 20-03-2019, 18:25, посмотрело: 29

Как реализовать на Эликсир JSON API endpoint без каких либо фреймворков?



От переводчика:

В статье приведён пример очень простого веб-приложения, которое можно рассматривать как Hello, World! в создании простейшего API на Эликсире.

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

Полный код примера с изменениями можно увидеть на GitHub.



Простейший JSON RESTful API на Эликсир

Проблемы нового языка



Многие разработчики приходят в Эликсир из мира Ruby. Это очень зрелая среда с точки зрения количества доступных библиотек и фреймворков. И такой зрелости мне иногда не хватает в Эликсире. Когда мне нужна сторонняя служба, результат поисков подходящей может быть следующим:

какой же будет результат?

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

 

Network Maps. Краткий обзор софта для построения карт сети

Автор: admin от 20-03-2019, 18:25, посмотрело: 34

Network Maps. Краткий обзор софта для построения карт сети





1. Теория



1.1. Зачем?



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



1.2. L1, L2, L3



Они же Layer 1, Layer 2 и Layer 3 в соответствии с моделью OSI. L1 – физический уровень (провода и коммутация), L2 – уровень физической адресации (mac-адреса), L3 – уровень логической адресации (IP-адреса).

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

 

Компания Sikorsky провела демонстрацию беспилотного вертолёта с человеком на борту

Автор: admin от 20-03-2019, 18:20, посмотрело: 27

Компания Sikorsky провела демонстрацию беспилотного вертолёта с человеком на борту
Вертолёт SARA (Sikorsky Autonomy Research Aircraft) на базе Sikorsky S-76 с автопилотом Matrix Technology



Sikorsky считается одним из мировых лидеров в разработке беспилотных вертолётов. Созданный набор систем Matrix Technology достиг уже такого уровня, что в течение года компания планирует интегрировать некоторые функции в вертолёты Black Hawk, которые поставляет для армии. Как и в автомобилях, эти функции позволяют снять с пилота часть нагрузки.



В перспективе же вертолёты с автопилотом способны выполнять мирную миссию — это будет летающее такси.

Категория: Информационная безопасность

 

Списки захвата в Swift: в чём разница между ссылками weak, strong и unowned?

Автор: admin от 20-03-2019, 18:20, посмотрело: 32

Списки захвата в Swift: в чём разница между ссылками weak, strong и unowned?
Джозеф Райт, «Пленный» — иллюстрация «сильного» захвата



Список «захваченных» значений находится перед списком параметров замыкания и может «захватить» значения из области видимости тремя разными способами: используя ссылки «strong», «weak» или «unowned». Мы часто его используем, главным образом для того, чтобы избежать циклов сильных ссылок («strong reference cycles» aka «retain cycles»).

Начинающему разработчику бывает сложно принять решение, какой именно применить способ, так что вы можете потратить много времени, выбирая между «strong» и «weak» или между «weak» и «unowned», но, со временем, вы поймёте, что правильный выбор — только один.
Давайте взглянем на проблему.

Категория: Информационная безопасность

 

Разработка цифровых продуктов с помощью ментальных моделей

Автор: admin от 20-03-2019, 18:20, посмотрело: 30

Привет, Хабр! Предлагаю вашему вниманию перевод статьи Designing Digital Products with Mental Models автора дизайнера Тима Шеинера.



Лучший способ добиться взаимопонимания в проектной команде.



Перевод — это сложно



Когда-то, путешествуя по Индии, я купил недорогую книжку — «Преступление и наказание» Достоевского на английском. Я предвкушал, как с наслаждением прочту этот шедевр, но в итоге одолел его с большим трудом. Вместо восторга я испытывал недоумение: почему им так восхищаются? Как выяснилось позднее, текст, который я читал, был далек от первоисточника. Я узнал об этом, лишь добравшись до Бангкока, где попытался продать прочитанную книгу букинисту. Тот заявил, что ему она не нужна, поскольку перевод ужасен.



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

Категория: Информационная безопасность

 

Личный опыт: как мы занимались испаноязычным продвижением стартапа в Латинской Америке

Автор: admin от 20-03-2019, 18:20, посмотрело: 34

Категория: Информационная безопасность

 

Клон Mirai добавляет дюжину новых эксплойтов для целевых корпоративных IoT-устройств

Автор: admin от 20-03-2019, 18:20, посмотрело: 21

Исследователями обнаружен новый клон всем известного ботнета Mirai, ориентированного на IoT-устройства. На этот раз, под угрозой оказались встраиваемые устройства, предназначенные для применения в бизнес-средах. Конечной целью злоумышленников является контроль над устройствами, обладающими пропускной способностью и проведение масштабных DDoS-атак.



Клон Mirai добавляет дюжину новых эксплойтов для целевых корпоративных IoT-устройств

Категория: Программирование, Информационная безопасность

 

Прямая трансляция и расписание конференции SmartMail Conf: Machine Learning

Автор: admin от 20-03-2019, 18:10, посмотрело: 31

Прямая трансляция и расписание конференции SmartMail Conf: Machine Learning

Друзья, осталось всего три дня до SmartMail Conf — нашей первой конференции по машинному обучению. Программа выступления чуть более чем полностью состоит из докладов наших коллег из Почты Mail.ru. Они расскажут много интересного про обработку естественных языков, про компьютерное зрение и обучение моделей борьбе со спамом. Причём расскажут не в отрыве от реальности, а на практических примерах использования в наших собственных проектах и технологиях.



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

Категория: Google

 

Android будет предлагать европейским пользователям браузер и поисковую систему на выбор

Автор: admin от 20-03-2019, 18:10, посмотрело: 24

В далёком 2009 году Еврокомиссия признала, что Microsoft злоупотребляет монопольным положением на рынке операционных систем, поставляя свой браузер Internet Explorer в комплекте с Windows. Американскую корпорацию заставили демонстрировать специальное окошко с выбором браузера. Так оно выглядело в 2010 году:



Android будет предлагать европейским пользователям браузер и поисковую систему на выбор


Прошло почти 10 лет — и теперь история повторяется, но уже с операционной системой Android. По «рекомендации» ЕС компания Google тоже приняла решение предлагать новым европейским пользователям Android браузер и поисковую систему на выбор.

Категория: Google

 
Назад Вперед