February 17, 2019

Подборка: IT (17.02.2019)

1) Фундаментальные основы хакерства. Продолжаем осваивать отладчик

В предыдущих статьях мы познакомились с двумя основными типами хакерского инструментария: дизассемблером и отладчиком. В очередной статье цикла мы продолжим изучать глубинное бурение чужого кода.

https://teletype.in/@cyberlifes/ByqZVFNHV

Источник: @CyberLifes

2) Схема успешного развития data-scientist специалиста в 2019 году

Подготовили для вас Roadmap. Приведенная схема развития data-scientist пригодится как начинающему, так и опытному специалисту.

https://prglb.ru/29pbx

Источник: @proglibrary

3) Повествование в играх

Многие игры пытаются быть наполовину фильмами. Геймплей в них разбавлен сценами, в течение которых игрок наблюдает за разговорами и действиями главного героя. Хотя только что он сам был этим героем: сражался с противниками, бегал по локациям и общался с местными жителями. Так возникает противоречие.

Главное отличие игр от других видов развлечений — интерактивность. В книгах вам рассказывают о том, как герой что-то делает, в кино показывают. В видеоигре вы и есть главный герой — и этой особенностью нужно пользоваться, чтобы рассказывать впечатляющие истории.

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

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

https://www.progamer.ru/dev/designing-game-narrative.htm

Источник: @devapp

4) Буквы на чистом CSS, плохая, но забавная идея

https://kennethormandy.com/journal/pure-css-lettering-a-bad-and-fun-idea/

Источник: @front_end_dev

5) React vs. Vue (Todo App) на примере

https://medium.com/js-dojo/react-vs-vue-exact-todo-app-comparison-by-example-14cc56efc5e5

Источник: @front_end_dev

6) Оптимизация производительности приложения Vue.js: часть 2 — Lazy loading routes и вендорный bundle anti-pattern

https://itnext.io/vue-js-app-performance-optimization-part-2-lazy-loading-routes-and-vendor-bundle-anti-pattern-4a62236e09f9

Источник: @front_end_dev

7) ​​Метод управления data science проектами в hi-tech индустрии

https://www.kdnuggets.com/2019/02/data-science-agile-cycles-method-managing-projects-hi-tech-industry.html

Источник: @datarootlabs

8) Циклы for и while в Python поддерживают предложение else, которое выполняется только в том случае, если цикл завершается без выполнения оператора break

#codeexample

def contains(haystack, needle):
  """
  "Бросайте" ValueError если needle
  не находится в haystack.
  """
  for item in haystack:
    if item == needle:
      break
  else:
 # Else - это "предложение завершения",
 # которое выполняется только в том случае, если 
 # цикл завершился без оператора break
    raise ValueError('Needle not found')

contains([23, 'needle', 0xbadc0ffee], 'needle')
None

contains([23, 42, 0xbadc0ffee], 'needle')
ValueError: "Needle not found"

# Если вы не фанат else "условия завершения" в циклах,
# то можете сделать что-то вроде этого:
def better_contains(haystack, needle):
  for item in haystack:
    if item == needle:
      return
  raise ValueError('Needle not found')

# Небольшое примечание:
if needle not in haystack:
  raise ValueError('Needle not found')

Источник: @pyproglib

9) Введение в умные указатели на С++ для начинающих.

https://prglb.ru/ncho

Источник: @cppproglib

10) Обзор корутин в C++.

https://prglb.ru/s0bu

Источник: @cppproglib

11) Полный курс по Реакт для начинающих.

https://prglb.ru/3ofc

Источник: @frontendproglib

12) Как выглядят современные браузеры: полезный туториал для веб-разработчиков.

https://prglb.ru/5ejgw

Источник: @frontendproglib

13) Сравнение возможностей Kotlin и Java для Android-разработки:

https://prglb.ru/2k759

Источник: @mobileproglib

14) Слышали про оператор defer? Он служит для отсрочки исполнения кода до окончания выполнения текущего блока. А вот как его использовать в своих проектах:

http://prglb.ru/188mq

Источник: @mobileproglib

15) ​​Пожалуй, одна из лучших презентаций по semi-supervised

https://prglb.ru/qlzh

Источник: @dsproglib

16) Основы многопоточности в Java.

https://prglb.ru/1qppo

Источник: @javaproglib

17) Туториал по совместной работе Kafka и Spring Boot.

https://prglb.ru/45ljf

Источник: @javaproglib

18) Обертка над стандартной функцией отправки сообщений.

https://prglb.ru/3t7fd

Источник: @csharpproglib

19) Тестируем WEB API на C# с помощью Postman.

https://prglb.ru/q1hd

Источник: @csharpproglib