Habr.com

Syndicate content Хабр
Updated: 6 min 23 sec ago

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

2 hours 23 min ago

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


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


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


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


Читать дальше →

Самодельный лазер на парах хлорида меди

Mon, 08/19/2019 - 22:49
В одной из статей, посвященных моему лазеру на парах меди, на основе активного элемента УЛ-102 в комментариях был задан вопрос – а что же будет дальше? Дальше оставалось только найти способ сделать самостоятельно активный элемент лазера. И этот способ был найден. Об этом речь пойдет в сегодняшнем посте.

Читать дальше →

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

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

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


Читать дальше →

Что такое API

Mon, 08/19/2019 - 20:19
Содержание

Слово «API» мелькает в вакансиях даже для начинающих тестировщиков. То REST API, то SOAP API, то просто API. Что же это за зверь такой? Давайте разбираться!

— А зачем это мне? Я вообще-то web тестирую! Вот если пойду в автоматизацию, тогда да… Ну, еще это в enterprise тестируют, я слышал…

А вот и нет! Про API полезно знать любому тестировщику. Потому что по нему системы взаимодействуют между собой. И это взаимодействие вы видите каждый день даже на самых простых и захудалых сайтах.
Любая оплата идет через API платежной системы. Купил билет в кино? Маечку в онлайн-магазине? Книжку? Как только жмешь «оплатить», сайт соединяет тебя с платежной системой.
Но даже если у вас нет интеграции с другими системами, у вас всё равно есть API! Потому что система внутри себя тоже общается по api. И пока фронт-разработчик усиленно пилит GUI (графический интерфейс), вы можете:

  • скучать в ожидании;
  • проверять логику работы по API

Конечно, я за второй вариант! Так что давайте разбираться, что же такое API.

Что такое API


API (Application programming interface) — это контракт, который предоставляет программа. «Ко мне можно обращаться так и так, я обязуюсь делать то и это».

Если переводить на русский, это было бы слово «договор». Договор между двумя сторонами, как договор на покупку машины:

  • мои обязанности — внести такую то сумму,
  • обязанность продавца — дать машину.

Перевести можно, да. Но никто так не делает ¯\_(ツ)_/¯
Читать дальше →

Облачные игры: оценка возможностей сервисов для игры на слабых ПК из первых рук

Mon, 08/19/2019 - 20:08


Представляю продолжение своей статьи «Облачные сервисы для игры на слабых ПК, актуальные в 2019 году». В прошлый раз мы оценивали их достоинства и недостатки, используя открытые источники. Сейчас же я протестировала каждый из сервисов, о которых говорилось в прошлый раз. Результаты этой оценки — ниже.

Отмечу, что оценить абсолютно все возможности этих продуктов за вменяемое время не представляется возможным — слишком много нюансов. Но я постаралась добавить в статью наиболее важные технические характеристики, которые и стали своеобразными «реперными точками» статьи. Disclaimer: Обзор субъективный, это не научное исследование.
Читать дальше →

[Перевод] UX Резюме: Перезагрузка

Mon, 08/19/2019 - 19:44
Практически у каждого из вас есть резюме, не так ли? Так как это важная часть вашего основного набора инструментов используемого при поиске работы, точно такая же, как и портфолио (если у вас еще есть проблемы с этим — то вам сюда). Однако, уверены ли вы, что оно проходит через элементарные автоматические проверки при подаче заявки на вакансию своей мечты?



Читать дальше →

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

Mon, 08/19/2019 - 19:38
Привет!

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

Начало в 19:30.

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


Читать дальше →

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

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




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

$startedAt = new DateTime('2019-06-30 10:00:00'); $finishedAt = $startedAt->add(new DateInterval('PT3M')); var_dump($startedAt->format('Y-m-d H:i:s')); //2019-06-30 10:03:00 var_dump($finishedAt->format('Y-m-d H:i:s')); //2019-06-30 10:03:00
Обе функции $startdate и $finishdate спешат на три минуты, потому как такие методы, как add (), sub() или modify() также изменяют объект DateTime, для которого они вызываются, прежде чем вернуть его. В приведенном выше примере, конечно же, показано нежелательное поведение.

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

[Из песочницы] Удаленная работа в режиме full-time: с чего начать, если ты не senior

Mon, 08/19/2019 - 19:15
На сегодняшний день множество IT-компаний сталкиваются с проблемой поиска сотрудников в своем регионе. Все больше предложений на рынке труда связаны с возможностью работы вне офиса – удаленно.

Работа в режиме full-time remote предполагает, что работодатель и работник связаны четкими трудовыми обязательствами: контрактом или трудовым договором; чаще всего, определенным нормированным графиком работы, стабильной зарплатой, отпусками и прочими особенностями, которые зачастую присущи тем, кто проводит свой рабочий день в офисе.
Преимущества постоянной удаленной работы для каждого, кто решил оставить офис, свои. Возможность работать на крупные зарубежные компании без переезда в другой географический регион, стабильность, в сравнении с freelance – это, наверное, основное, что может привлечь нашего соотечественника. Высокий уровень конкуренции – вот основная сложность, с которой сталкивается соискатель, выходя на поиски работы на международном рынке труда. Читать дальше →

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

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

Читать дальше →

REST Assured: что мы узнали за пять лет использования инструмента

Mon, 08/19/2019 - 18:04

REST Assured — DSL для тестирования REST-сервисов, который встраивается в тесты на Java. Это решение появилось более девяти лет назад и стало популярным из-за своей простоты и удобного функционала.


В DINS мы написали с ним более 17 тысяч тестов и за пять лет использования столкнулись со множеством «подводных камней», о которых нельзя узнать сразу после импорта библиотеки в проект: статическим контекстом, путаницей в порядке применения фильтров к запросу, трудностями в структурировании теста.


Эта статья — о таких неявных особенностях REST Assured. Их нужно учитывать, если есть шанс, что количество тестов в проекте будет быстро увеличиваться — чтобы потом не пришлось переписывать.


Читать дальше →

Танчики на Паскале: как учили детей программированию в 90-х и что с этим было не так

Mon, 08/19/2019 - 17:59
Немного о том, что из себя представляла школьная «информатика» в 90-х, и почему все программисты тогда были исключительно самоучки.


Читать дальше →

Инструментарий тимлида от e-mail до канбан-доски

Mon, 08/19/2019 - 17:40
В этот раз на TeamLead Conf мы решили собрать докладов на целый поток больше. В сентябре в Питере впервые будет три параллельных трека докладов для тимлидов и про тимлидов. С одной стороны это связано с тем, что мы растём и развиваемся, с другой стороны — тематика конференции нам это позволяет, а разнообразие направлений работы и развития тимлида рекомендуют как можно более широко и глубоко освещать эту деятельность.

Итак, по доброй традиции у нас будет 6 основных направлений нанесения пользы. Ниже их «говорящие» названия:

  • Личное развитие. 
  • Работа с командой. 
  • Инструментарий тимлида.
  • Развитие осознанности.
  • Трансформационные изменения в процессах и людях.
  • Выстраивание технологического процесса. 

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



Инструментарию тимлида в этот раз будет посвящено больше десяти докладов. С моей точки зрения это вполне соответствует положению дел в индустрии. Поскольку лиды в большинстве своём инженеры, то методы решения даже не инженерных задач у них всё равно близки к инженерным.
Читать дальше →

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

Mon, 08/19/2019 - 17:32

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


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


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

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



Павел Селиванов на открытии Слёрма-4

Читать дальше →

Аудит безопасности облачной платформы MCS

Mon, 08/19/2019 - 17:30

SkyShip Dusk by SeerLight

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

Статья — про этот самый незамыленный взгляд внешних экспертов, которые помогли команде Mail.ru Cloud Solutions (MCS) протестировать облачный сервис, и про то, что они нашли. В качестве «внешних сил» MCS выбрали компанию Digital Security, известную своей высокой экспертизой в кругах ИБ. И в данной статье мы разберем некоторые интересные уязвимости, найденные в рамках внешнего аудита — чтобы вас минули такие же грабли, когда вы будете делать свой облачный сервис.
Читать дальше →

Chaos Constructions 2019 is Coming…

Mon, 08/19/2019 - 17:25
Chaos Constructions 2019

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

  • Безопасность
  • Администрирование
  • Программирование
  • Разработка игр и другие
.

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

Читать дальше →

Открытый микрофон от DevOps Deflope, рассказы про инфраструктуру Skyeng и Nvidia и не только

Mon, 08/19/2019 - 17:15
Привет, в следующий вторник на Таганке планируются теплые ламповые посиделки: будет Артем Науменко с рассказом про инфрастуктуру как продукт, Виталий Добровольский с докладом про балансировку кластера Kafka и ведущие профильного подкаста с пока секретной темой для обсуждения. А еще мы ожидаем специального гостя из северной столицы — Виталия Левченко, организатора питерской SRE-тусовки.

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



А пока идет регистрация участников, мы поговорили с докладчиками о том, как устроена жизнь SRE-специалистов в их командах и каким компаниям оно вообще нужно. Читать дальше →

Заметки с конференции ACL 2019

Mon, 08/19/2019 - 16:37


Annual Meeting of the Association for Computational Linguistics (ACL) — это главная конференция в области обработки естественного языка. Она организуется с 1962 года. После Канады и Австралии она вернулась в Европу и проходила во Флоренции. Таким образом, в этом году у европейских исследователей она была более популярна, чем похожая на нее EMNLP.

В этом году было опубликовано 660 статей из 2900 присланных. Огромное количество. Вряд ли можно сделать какой-то объективный обзор того, что было на конференции. Поэтому я расскажу своих субъективных ощущениях от этого мероприятия.
Читать дальше →

[Перевод] Тренинг Cisco 200-125 CCNA v3.0. День 20. Статическая маршрутизация

Mon, 08/19/2019 - 16:30
Сегодня мы поговорим о статической маршрутизации и рассмотрим три темы: что такое статическая маршрутизация, как она настраивается и какая у неё альтернатива. Вы видите топологию сети, которая включает в себя компьютер с IP-адресом 192.168.1.10, подсоединенный через свитч к шлюзу, или роутеру. Для этого соединения используется порт роутера f0/0 с IP-адресом 192.168.1.1.



Второй порт этого роутера f0/1 с IP-адресом 192.168.2.1 подключен к порту f0/0 другого роутера, и этот интерфейс имеет адрес 192.168.2.2. Второй роутер соединен портом f0/1 с адресом 192.168.3.2 с третьим роутером, который использует для этого соединения порт f0/0 с IP-адресом 192.168.3.3. Читать дальше →

[Перевод] Как ИИ и нейробиология двигают друг друга вперед

Mon, 08/19/2019 - 16:15
Объединение возможностей ИИ и наук о мозге обещает выгоды для обеих областей


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

Popular content


Who's online

There are currently 0 users and 1 guest online.