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

Добрый день! Несколько дней назад столкнулся с небольшой проблемой в нашем проекте — в обработчике прерывания gdb неправильно выводил stack trace для Cortex-M. Поэтому в очередной раз полез выяснять, а какими способами можно получать stack trace для ARM? Какие флаги компиляции влияют на возможность трассировки стека на ARM? Как это реализовано в ядре Linux? По результатам исследований решил написать эту статью.
Читать полностью »

image

Это перевод поста Майкла МакКи. Майкл — профессиональный программист, который время от времени делится своим опытом и навыками с коллегами, как начинающими кодерами, так и профессионалами.

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

Массачусетский Технологический институт. Курс лекций #6.858. «Безопасность компьютерных систем». Николай Зельдович, Джеймс Микенс. 2014 год

Computer Systems Security — это курс о разработке и внедрении защищенных компьютерных систем. Лекции охватывают модели угроз, атаки, которые ставят под угрозу безопасность, и методы обеспечения безопасности на основе последних научных работ. Темы включают в себя безопасность операционной системы (ОС), возможности, управление потоками информации, языковую безопасность, сетевые протоколы, аппаратную защиту и безопасность в веб-приложениях.

Лекция 1: «Вступление: модели угроз» Часть 1 / Часть 2 / Часть 3
Лекция 2: «Контроль хакерских атак» Часть 1 / Часть 2 / Часть 3
Лекция 3: «Переполнение буфера: эксплойты и защита» Часть 1 / Часть 2 / Часть 3
Лекция 4: «Разделение привилегий» Часть 1 / Часть 2 / Часть 3
Лекция 5: «Откуда берутся ошибки систем безопасности» Часть 1 / Часть 2
Лекция 6: «Возможности» Часть 1 / Часть 2 / Часть 3
Лекция 7: «Песочница Native Client» Часть 1 / Часть 2 / Часть 3
Лекция 8: «Модель сетевой безопасности» Часть 1 / Часть 2 / Часть 3
Лекция 9: «Безопасность Web-приложений» Часть 1 / Часть 2 / Часть 3Читать полностью »

Данная статья является конспектом книги "Чистый Код" Роберта Мартина и моим пониманием того, каким Чистый Код должен быть. Тут нет разделов о тестировании, TDD, о том какая должна быть архитектура и т.д. Здесь все только о том, каким должен быть Чистый Код.

Манифест Чистого Программиста или краткий конспект книги «Чистый Код» Роберта Мартина - 1

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

Привет всем!

Сегодня вашему вниманию предлагается перевод по-своему незаменимой статьи, которая поможет вам правильно подойти даже к самому коварному и нетривиальному ТЗ, которого вы на первый взгляд в упор не понимаете. Главное — не сдаваться и толково формулировать вопросы. Господин Джастин Фуллер из «Бэнк оф Америка» любезно излагает, как это правильно делается.

Как решить любую программерскую задачу - 1

Приятного чтения!
Читать полностью »

3-5 октября в Амстердаме пройдёт KotlinConf 2018, событие, которое мы готовили целый год. 2 дня сессий, целый день воркшопов, 1 200 участников — мы с нетерпением ждём начала.

Для тех, кто не сможет приехать, у нас хорошая новость: 4-5 октября будет открытая трансляция основного потока сессий KotlinConf 2018 Live:

  • главные обновления Kotlin в кейноуте Андрея Бреслава, руководителя проекта Kotlin;
  • 14 онлайн-сессий с ключевыми членами команды Kotlin и экосистемы (полный список сессий KotlinConf 2018: 4 октября, 5 октября);
  • закрытие с сессией вопросов-ответов (задайте свой вопрос уже сейчас в Twitter с хештегом #kc18ask).

Присоединяйтесь к нам, зарегистрируйтесь, чтобы не пропустить трансляцию и получить запись после конференции.

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

Как и во многих других проектах с открытым исходным кодом, в сообществе Visual Studio Code используются запросы на принятие изменений. С их помощью разработчики совместно исправляют ошибки и добавляют новые функции. Недавно мы обновили общедоступную пробную версию GitHub Pull Requests for Visual Studio Code, тем самым устранив проблему, с которой мы и миллионы разработчиков сталкиваемся каждый день: невозможность просматривать исходный код там, где он был написан, — в редакторе.

GitHub Pull Requests в Visual Studio Code - 1Читать полностью »

image

В апреле 2018 года команда Waves представила свои не тьюринг-полные смарт-контракты.

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

Статья будет полезна разработчикам для реализации собственных смарт-контрактов и знакомства с технологией
Читать полностью »

Каково делать Kotlin: интервью с Андреем Бреславом - 1

Дефицита технических материалов о Kotlin нет, узнать о корутинах или nullability можно много где. Но остаётся куда менее освещённой другая сторона: а как вообще выглядит процесс разработки языка? Как принимаются решения? Каковы задачи у «самого главного человека»? Остаётся ли у него в жизни время на что-либо ещё?

И сейчас, когда вот-вот выйдет Kotlin 1.3, мы расспросили «самого главного» Андрея Бреслава не про корутины, а про совсем другое: от того, чем он занимался до Kotlin, до того, чем полезна психотерапия.
Читать полностью »

Всем привет!

Последний в этом году курс «Разработчик Java Enterprise» успешно запущен и у нас остался последний материал по данной теме, которым мы хотим поделиться с вами, где разбирается использование асинхронного подхода и стейджинга для разработки отзывчивых реактивных приложений.

Поехали.

Реактивное программирование сперва звучит, как название зарождающейся парадигмы, но на самом деле, относится к методу программирования, в котором для работы с асинхронными потоками данных используется событийно-ориентированный подход. Основываясь на постоянно текущих данных, реактивные системы реагируют на них путем выполнения ряда событий.
Реактивное программирование следует шаблону проектирования “Наблюдатель”, который можно определить следующим образом: если в одном объекте происходит изменение состояния, то все прочие объекты оповещаются и обновляются соответствующим образом. Поэтому, вместо того, чтобы опрашивать события на предмет изменений, события пушатся асинхронно, чтобы наблюдатели могли их обработать. В этом примере, наблюдатели — функции, которые исполняются, когда событие отправлено. А упомянутый поток данных — фактический наблюдаемый.

Почти все языки и фреймворки используют этот подход в своей экосистеме, и последние версии Java — не исключение. В этой статье я объясню как можно применить реактивное программирование, используя последнюю версию JAX-RS в Java EE 8 и функционал Java 8.

Реактивное программирование с JAX-RS - 1Читать полностью »


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