Спор: прочитав до конца, вы поймёте, как и почему именно так работает GC

Автор: admin от 19-08-2019, 23:10, посмотрело: 29

Скажу сразу: я никогда не жду развёрнутого ответа на этот вопрос на собесах. Это глупо и моем случае — эгоисточно. Однако, на мой взгляд, помимо общего интереса к платформе, знать как он работает очень полезно, т.к. это снимает целый ряд вопросов. Например, исключает вариант, когда разработчик считает, что Dispose вызывается автоматически и вызывать его самому не надо. Или же если разработчик более опытен, помогает ему автоматически, на уровне мышечной памяти писать код, приводящий к наименьшему количеству проблем.



Другой вопрос, что мне не очень нравится, как объясняется его работа. Я предлагаю альтернативный подход, описанный в моей книге, .NET Platform Architecture.



Если мы с вами будем досконально разбираться, почему были выбраны именно эти два алгоритма управления памятью: Sweep и Compact, нам для этого придётся рассматривать десятки алгоритмов управления памятью, которые существуют в мире: начиная обычными словарями, заканчивая очень сложными lock-free структурами. Вместо этого, оставив эту тему для тех редких читателей на изучение соответствующей литературы, мы просто обоснуем выбор и тем самым не просто запомним как детки в школе, как работает тот или иной алгоритм. Напротив: мы поймём, почему выбор был сделан именно таким. Мы более не смотрим в рекламный буклет ракеты-носителя: у нас на руках полный набор документации.



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



Спор: прочитав до конца, вы поймёте, как и почему именно так работает GC

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

 

Кот Шрёдингера без коробки: проблема консенсуса в распределённых системах

Автор: admin от 19-08-2019, 18:40, посмотрело: 30

Итак, представим. В комнате заперты 5 котов, и чтобы пойти разбудить хозяина им необходимо всем вместе договориться между собой об этом, ведь дверь они могут открыть только впятером навалившись на неё. Если один из котов – кот Шрёдингера, а остальные коты не знают о его решении, возникает вопрос: «Как они могут это сделать?»



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



Кот Шрёдингера без коробки: проблема консенсуса в распределённых системах

Категория: Веб-разработка

 

NX JAVA meetup #14: исследование производительности на проде, плюсы и минусы Spark в решениях на основе Cassandra

Автор: admin от 19-08-2019, 18:40, посмотрело: 38

Привет!



29 августа в петербургском офисе Nexign пройдет java-митап.



Начало в 19:30.



Больше подробностей и ссылка на регистрацию — под катом.



NX JAVA meetup #14: исследование производительности на проде, плюсы и минусы Spark в решениях на основе Cassandra

Категория: Веб-разработка

 

Как визуализировать звук в вебе: подборка тематических материалов и видеолекций с теорией и практикой

Автор: admin от 19-08-2019, 18:40, посмотрело: 31

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



Как визуализировать звук в вебе: подборка тематических материалов и видеолекций с теорией и практикой

Категория: Веб-разработка

 

Перестаньте использовать DateTime

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

Специально для студентов курса «Backend разработчик на PHP» подготовили перевод интересной статьи о сайд-эффекте популярного инструмента.



Перестаньте использовать DateTime






Работа с датами и временем в PHP порой раздражает, поскольку приводит к неожиданным багам в коде:



$startedAt = new DateTime('2019-06-30 10:00:00');

$finishedAt = $startedAtadd(new DateInterval('PT3M')); 

var_dump($startedAtformat('Y-m-d H:i:s')); //2019-06-30 10:03:00 
var_dump($finishedAtformat('Y-m-d H:i:s')); //2019-06-30 10:03:00 




Обе функции $startdate и $finishdate спешат на три минуты, потому как такие методы, как add (), sub() или modify() также изменяют объект DateTime, для которого они вызываются, прежде чем вернуть его. В приведенном выше примере, конечно же, показано нежелательное поведение.



Мы можем исправить эту ошибку, скопировав объект, на который происходит ссылка, прежде чем взаимодействовать с ним, например:

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

 

«Слёрм» — highly addictive. Как превратить междусобойчик в глобальный проект

Автор: admin от 19-08-2019, 14:45, посмотрело: 25

Southbridge со своим Слёрмом — единственная в России компания, которая имеет сертификат KTP (Kubernetes Training Provider).



Слёрму исполнился год. За это время наши интенсивы по Кубернетес прошло 800 человек. Самое время заняться мемуарами.



9-11 сентября в Питере, в конференц-зале Selectel пройдет очередной Слёрм, пятый по счету. Будет введение в Kubernetes: каждый участник создаст кластер в облаке Selectel и задеплоит туда приложение.

Под катом — история Слёрма, начиная с идеи и до сегодняшнего дня.



«Слёрм» — highly addictive. Как превратить междусобойчик в глобальный проект
Павел Селиванов на открытии Слёрма-4

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

 

Chaos Constructions 2019 is Coming…

Автор: admin от 19-08-2019, 14:45, посмотрело: 33

Chaos Constructions 2019





24-25 августа, традиционно в последние выходные лета, в Санкт-Петербурге пройдет компьютерный фестиваль Chaos Constructions 2019. На конференции в рамках фестиваля вашему вниманию будут представлены более 60 докладов на разные тематики.




  • Безопасность

  • Администрирование

  • Программирование

  • Разработка игр и другие

.



Изначально фестиваль был посвящен демосцене, а те компьютеры, которые теперь ретро, были самыми современными. Все началось в 1995 году с фестиваля ENLiGHT, который был организован Петром Соболевым (frog). В те годы толком не было ни системного администрирования, ни интернета, первые программисты создавали код, который выводил звуки и анимацию. Первопроходцы собирались раз в год под одной крышей показать свои работы и поделиться кодом, который и сейчас доступен для просмотра и изучения на http://ftp.cc.org.ru, где можно посмотреть работы за все эти годы. Из демопати ENLiGHT вырос компьютерный фестиваль Chaos Constructions. В 1999 году мероприятие впервые проходило под новым именем, постепенно на фестивале появилась выставка из коллекций энтузиастов. Сейчас эта выставка известна как объединение RTS, вы можете посещать её в разных городах России и на крупнейших фестивалях, и на небольших мероприятиях.

Chaos Constructions 2019 is Coming…

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

 

Исследование глубин аннотаций типов в Python. Часть 2

Автор: admin от 19-08-2019, 12:25, посмотрело: 43

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



Исследование глубин аннотаций типов в Python. Часть 2



Первая часть

Категория: Веб-разработка

 

Один стендап в Яндекс.Такси, или Чему нужно научить бэкенд-разработчика

Автор: admin от 19-08-2019, 12:10, посмотрело: 25

Моё имя Олег Ермаков, я работаю в команде бэкенд-разработки приложения Яндекс.Такси. У нас принято проводить ежедневные стендапы, где каждый из нас рассказывает о сделанных за день задачах. Вот как это бывает…



Имена сотрудников может и изменены, а вот задачи вполне себе реальны!



На часах 12:45, вся команда собирается в переговорке. Первым слово берет Иван, стажёр-разработчик.



Иван:

Я работал над задачей отображения всех возможных вариантов сумм, которые пассажир мог дать водителю при известной стоимости поездки. Задача достаточно известная — называется «Размен монет». С учётом специфики добавил в алгоритм несколько оптимизаций. Отдал пул-реквест на ревью еще позавчера, но с тех пор я исправляю замечания.



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



Один стендап в Яндекс.Такси, или Чему нужно научить бэкенд-разработчика


Категория: Яндекс

 

Реализация шаблона проектирования Command в Unity

Автор: admin от 19-08-2019, 10:50, посмотрело: 44

Реализация шаблона проектирования Command в Unity


Вы задавались когда-нибудь вопросом, как в играх наподобие Super Meat Boy реализована функция реплея? Один из способов её реализации — выполнять ввод точно так же, как это делал игрок, что, в свою очередь, означает, что ввод нужно как-то хранить. Для этого и многого другого можно использовать шаблон Command.



Шаблон Command («Команда») также полезен для создания функций «Отменить» (Undo) и «Повторить» (Redo) в стратегической игре.



В этом туториале мы реализуем шаблон Command на языке C# и используем его для того, чтобы провести персонажа-бота по трёхмерному лабиринту. Из туториала вы узнаете:




  • Основы шаблона Command.

  • Как реализовать шаблон Command

  • Как создавать очередь команд ввода и откладывать их выполнение.

Категория: Старое железо

 
Назад Вперед