Алоха, пипл! Меня зовут Олег Анастасьев, я работаю в Одноклассниках в команде Платформы. А кроме меня, в Одноклассниках работает куча железа. У нас есть четыре ЦОДа, в них около 500 стоек более чем с 8 тысячами серверов. В определенный момент мы поняли, что внедрение новой системы управления позволит нам более эффективно загрузить технику, облегчить управление доступами, автоматизировать (пере)распределение вычислительных ресурсов, ускорить запуск новых сервисов, ускорить реакции на масштабные аварии.
В конце прошлого года мы подвели итоги, рассказали о самых рейтинговых публикациях, посчитали пользователей и поделились результатами. И вот, когда машина нового рабочего года начала разгоняться и набирать полный ход, мы готовы представить несколько полезных изменений.
В конце прошлого года мы подвели итоги, рассказали о самых рейтинговых публикациях, посчитали пользователей и поделились результатами. И вот, когда машина нового рабочего года начала разгоняться и набирать полный ход, мы готовы представить несколько полезных изменений.
Мы продолжаем серию публикаций о стажировке в СКБ Контур. Сегодня познакомимся с Анной Шляк, которая расскажет как прошла ее стажировка в Питере и поделится советами.
Тестовое задание
Об СКБ Контур я узнала от одногруппницы: «У них есть классненькие стажировки на C#». В феврале 2017 я дождалась начала стажировки, но была дико расстроена: тестовое задание показалось мне просто непосильным. Нужно было написать сервер статистики для игры-шутера. «Классненько», — подумала я и начала стараться. К концу февраля всё-таки смогла сделать первоначальный вариант и отправить на проверку.
Отбор по тестовым шел в две волны: сначала рассматривали тех, кто отправил ответы до 1 марта, потом — до 19 марта. Я хотела попасть в первую волну, и, как оказалось, не зря. На тестовое мне ответили: «Вы справились хорошо, но немного не дотянули до нашего ТОПа. До 19-го марта есть время, чтобы улучшить ваши ответы». Так я и сделала. Пока я писала код, появлялись новые уточнения и требования по заданию. В одном из уточнений был запрет использовать базу данных MS SQL Server. Если эта база не подходит, то как выбрать нужную? Наугад я выбрала SQLite и с тревогой отправила тестовое на проверку. И прошла дальше.
Следующим этапом был креш-курс на базе отдыха под Екатеринбургом. В апреле я вылетела из Санкт-Петербурга в столицу Урала ради лекций и развлечений. Я была счастлива, что попала на креш-курс: интересные и полезные лекции, парное программирование, куча разных игр, вкусняшки.
Мы продолжаем серию публикаций о стажировке в СКБ Контур. Сегодня познакомимся с Анной Шляк, которая расскажет как прошла ее стажировка в Питере и поделится советами.
Тестовое задание
Об СКБ Контур я узнала от одногруппницы: «У них есть классненькие стажировки на C#». В феврале 2017 я дождалась начала стажировки, но была дико расстроена: тестовое задание показалось мне просто непосильным. Нужно было написать сервер статистики для игры-шутера. «Классненько», — подумала я и начала стараться. К концу февраля всё-таки смогла сделать первоначальный вариант и отправить на проверку.
Отбор по тестовым шел в две волны: сначала рассматривали тех, кто отправил ответы до 1 марта, потом — до 19 марта. Я хотела попасть в первую волну, и, как оказалось, не зря. На тестовое мне ответили: «Вы справились хорошо, но немного не дотянули до нашего ТОПа. До 19-го марта есть время, чтобы улучшить ваши ответы». Так я и сделала. Пока я писала код, появлялись новые уточнения и требования по заданию. В одном из уточнений был запрет использовать базу данных MS SQL Server. Если эта база не подходит, то как выбрать нужную? Наугад я выбрала SQLite и с тревогой отправила тестовое на проверку. И прошла дальше.
Следующим этапом был креш-курс на базе отдыха под Екатеринбургом. В апреле я вылетела из Санкт-Петербурга в столицу Урала ради лекций и развлечений. Я была счастлива, что попала на креш-курс: интересные и полезные лекции, парное программирование, куча разных игр, вкусняшки.
Помните кинофильм «Терминатор» и прочие страшилки из ближайшего будущего? Пристегните ремни, под катом пара реальных историй про людей, добровольно вживляющих себе под кожу различные чипы. Конечно же, в нашей стране тоже есть доморощенные киборги, но давайте посмотрим, как оно развивается на Западе. Читать дальше ->
Помните кинофильм «Терминатор» и прочие страшилки из ближайшего будущего? Пристегните ремни, под катом пара реальных историй про людей, добровольно вживляющих себе под кожу различные чипы. Конечно же, в нашей стране тоже есть доморощенные киборги, но давайте посмотрим, как оно развивается на Западе. Читать дальше ->
Многие разработчики приходят в разработку ПО, потому что хотят создавать игры. Не все могут стать профессиональными разработчиками игр, но любой может создавать собственные игры из интереса (а может быть, и с выгодой). В этом туториале, состоящем из пяти частей, я расскажу вам, как создавать двухмерные однопользовательские игры с помощью Python 3 и замечательного фреймворка PyGame.
Мы создадим версию классической игры Breakout. Освоив этот туториал, вы будете чётко понимать, что необходимо для создания игры, познакомитесь с возможностями Pygame и напишете собственный пример игры.
Мы реализуем следующие функции и возможности:
простые стандартные GameObject и TextObject
простой стандартный Game object
простая стандартная кнопка
файл конфигурации
обработка событий клавиатуры и мыши
кирпичи, ракетка и мяч
управление движением ракетки
обработка коллизий мяча с объектами игры
фоновое изображение
звуковые эффекты
расширяемая система спецэффектов
Не стоит ожидать, что игра будет очень красива графически. Я программист, а не художник, меня больше интересует эстетика кода. Созданный мной дизайн может неприятно удивить. С другой стороны, у вас будут почти неограниченные возможности по улучшению графики этой версии Breakout. Если вы отважитесь повторять за мной, посмотрите на скриншот:
Многие разработчики приходят в разработку ПО, потому что хотят создавать игры. Не все могут стать профессиональными разработчиками игр, но любой может создавать собственные игры из интереса (а может быть, и с выгодой). В этом туториале, состоящем из пяти частей, я расскажу вам, как создавать двухмерные однопользовательские игры с помощью Python 3 и замечательного фреймворка PyGame.
Мы создадим версию классической игры Breakout. Освоив этот туториал, вы будете чётко понимать, что необходимо для создания игры, познакомитесь с возможностями Pygame и напишете собственный пример игры.
Мы реализуем следующие функции и возможности:
простые стандартные GameObject и TextObject
простой стандартный Game object
простая стандартная кнопка
файл конфигурации
обработка событий клавиатуры и мыши
кирпичи, ракетка и мяч
управление движением ракетки
обработка коллизий мяча с объектами игры
фоновое изображение
звуковые эффекты
расширяемая система спецэффектов
Не стоит ожидать, что игра будет очень красива графически. Я программист, а не художник, меня больше интересует эстетика кода. Созданный мной дизайн может неприятно удивить. С другой стороны, у вас будут почти неограниченные возможности по улучшению графики этой версии Breakout. Если вы отважитесь повторять за мной, посмотрите на скриншот:
Я слышал, как многие разработчики говорят, что ненавидят CSS. Опыт подсказывает мне, что причина здесь в том, что они не уделяют достаточно времени для того, чтобы изучить CSS. Да, речь идёт о не самом дружелюбном «языке», но он успешно используется для стилизации веб-страниц уже более 20-ти лет. Это впечатляет, и с технологиями такого уровня распространённости приходится считаться. Однако, по мере роста объема стилей, задействованных в некоем проекте, проявляется один большой минус CSS: его очень сложно поддерживать. А плохо написанные стили быстро превращаются в кошмар.
В этом материале мы поговорим о соглашениях по именованию CSS-сущностей. Применяя их, вы, во-первых, сможете работать спокойнее и увереннее, а во-вторых — сэкономите много часов, которые раньше шли на доводку и отладку стилей.
Я слышал, как многие разработчики говорят, что ненавидят CSS. Опыт подсказывает мне, что причина здесь в том, что они не уделяют достаточно времени для того, чтобы изучить CSS. Да, речь идёт о не самом дружелюбном «языке», но он успешно используется для стилизации веб-страниц уже более 20-ти лет. Это впечатляет, и с технологиями такого уровня распространённости приходится считаться. Однако, по мере роста объема стилей, задействованных в некоем проекте, проявляется один большой минус CSS: его очень сложно поддерживать. А плохо написанные стили быстро превращаются в кошмар.
В этом материале мы поговорим о соглашениях по именованию CSS-сущностей. Применяя их, вы, во-первых, сможете работать спокойнее и увереннее, а во-вторых — сэкономите много часов, которые раньше шли на доводку и отладку стилей.
На этот вопрос вы не найдете четкий ответ в этой статье. Я предлагаю вам почву для размышлений на тему компаний-перевозчиков в США.
Что это такое?
Бодишоп — это компания, которая занимается перевозом программистов в ИТ-хабы и «продажей» их труда другой компании. Программист при этом официально числится в компании-бодишопе, но работает на проектом другой компании. «Это же старый добрый аутсорсинг,» – подумаете вы. Но нет, помимо того, что программист работает над проектом другой компании, он еще и физически находится в их офисе. И называется это аутстаффингом.
Дальше я расскажу больше о плюсах и минусах бодишопов для переезжающих по H1B визе и о том, как минусы сделать плюсами. Читать дальше ->
На этот вопрос вы не найдете четкий ответ в этой статье. Я предлагаю вам почву для размышлений на тему компаний-перевозчиков в США.
Что это такое?
Бодишоп — это компания, которая занимается перевозом программистов в ИТ-хабы и «продажей» их труда другой компании. Программист при этом официально числится в компании-бодишопе, но работает на проектом другой компании. «Это же старый добрый аутсорсинг,» – подумаете вы. Но нет, помимо того, что программист работает над проектом другой компании, он еще и физически находится в их офисе. И называется это аутстаффингом.
Дальше я расскажу больше о плюсах и минусах бодишопов для переезжающих по H1B визе и о том, как минусы сделать плюсами. Читать дальше ->
Виртуальные номера давно уже стали стандартным инструментом бизнеса. Однако, в некоторых случаях, например, при размещении частных объявлений, требуются так называемые DEF-номера. Это мобильные номера (в коде 958), которые «приземляются» на вашу АТС. Данные о звонках попадают в CRM. Сегодня мы расскажем о том, какие преимущества есть у виртуального DEF-номеров, и рассмотрим несколько бизнес-сценариев их использования.
Эта статья возникла из-за одной моей ошибки и двух багов — по одному в Chromium Headless и Chrome Driver. В результате пришлось собрать всё это из исходников (в статье есть подробнейшая инструкция), отладить цепочку взаимодействия Selenium<->ChromeDriver<->Chromium в отладчике IntelliJ IDEA и Microsoft Visual Studio, покопаться в Java, C++ и JS.
Статья будет интересна тем, кто хочет понять, чем им грозит переход на Selenium + Headless Chrome и как с этим жить. А также всем, кто просто хочет немного поглумиться над несчастным быдлокодером.
Под катом есть пачка скриншотов (трафик!).
Кстати, всё это можно было бы сделать скринкастом — но нельзя, потому что время компиляции C++ необычайно долгое. Вместо этого тут будут скриншоты для привлечения внимания.
Вначале напомню названия участвующих продуктов. Их три штуки:
Chromium — это браузер. Небрендированная версия Google Chrome, без автообновлений, анальных следящих зондов, но и без несвободных компонентов типа кодеков.
Chromium ChromeDriver — это часть Chromium, которая отвечает за управление им с помощью внешних инструментов.
Selenium и его Selenium Chrome Driver — эта штука предоставляет Java API для управления Хромиумом. Джава тут не принципиальна, на JavaScript и Puppeteer было бы то же самое.
Всё вместе позволяет управлять браузером из API на Java, JavaScript и так далее.
Представьте себе, что есть некая очень полезная программа, но она, например, существует только в версии Windows и только 64 бита. А вам нужно, например, под ARM64 и под другую ОС, соответственно. Причём исходников у вас нет, и достать их невозможно.
Что делать? Существует проект MCSema (пост на хабре про mcsema: https://habrahabr.ru/post/232871/). Его создатели (а они на финансировании DARPA, между прочим), обещают сказочные вещи: перевод бинарников в LLVM IR, оптимизации, семантический анализ кода и т.д. И конечно же, перекомпиляцию на любые архитектуры, которые поддерживает LLVM. Проект опенсорсный (ссылка на гитхаб: https://github.com/trailofbits/mcsema)
А теперь посмотрим, что происходит на самом деле. Читать дальше ->
Статистика DDoS-атак показывает неизменный рост и смещение вектора с сетевого уровня на уровень приложений.
Если у Вас есть небольшой сайт на сервере с минимальными характеристиками, то положить его можно любым вполне легальным средством стресс-тестирования. (Не рекомендую этого никому делать т.к. IP-адрес легко вычисляется и экспериментатор может влететь на возмещение ущерба.) Поэтому сайт без защиты от DDoS очень скоро будет выглядеть так же дико, как компьютер с Windows-98 без анивирусника. Читать дальше ->
[1] Стефан (Stephan B"osch-Plepelits) объявил что сайт Openstreetbrowser снова работает. Он просит помочь в создании дополнительных категорий для POI (точек интересов).
Праздничные квартиры (тэг tourism=apartment) становятся все более популярными не только в Европе. В базе данных OSM их более 14000 объектов и этим они заслуживают отображения на основном картостиле osm-carto. Отсутствует подходящий значок. Любые идеи или ваш вклад будет приветствоваться.
Исследовательская группа в Оксфорде, Англия, рассчитала время поездок в крупные города по всему миру с использованием данных Google Earth Engine и OpenStreetMap. Галереи карт для разных мест были опубликованы в The Guardian и Spiegel-online.
Оуэн Босвава (Owen Boswarva) отмечает, что этот набор данных выпущен под CC-BY 4.0. Он спрашивает, нет ли противоречий с лицензией ODbl. Эта тема дополнительно обсуждается в почтовой рассылке legal-talk.